Skip to content

Commit a13fe94

Browse files
committed
优化
1 parent 9a0992b commit a13fe94

47 files changed

Lines changed: 1228 additions & 330 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,28 @@
11
## go-encoding
22

3+
<p align="center">
4+
<a href="https://pkg.go.dev/github.com/deatil/go-encoding" ><img src="https://pkg.go.dev/badge/deatil/go-encoding.svg" alt="Go Reference"></a>
5+
<a href="https://codecov.io/gh/deatil/go-encoding" ><img src="https://codecov.io/gh/deatil/go-encoding/graph/badge.svg?token=SS2Z1IY0XL"/></a>
6+
<img src="https://goreportcard.com/badge/github.com/deatil/go-encoding" />
7+
</p>
38

4-
### 项目介绍
9+
[中文](README_CN.md) | English
510

6-
* 常用的编码解码算法
7-
* 算法包括: (Hex/Base32/Base45/Base58/Base62/Base64/Base85/Base91/Base92/Base100/MorseITU/JSON)
811

12+
### Desc
913

10-
### 下载安装
14+
* data encoding/decoding pkg
15+
* encodings has some (Hex/Base32/Base36/Base45/Base58/Base62/Base64/Base85/Base91/Base92/Base100/MorseITU/JSON)
16+
17+
18+
### Download
1119

1220
~~~go
1321
go get -u github.com/deatil/go-encoding
1422
~~~
1523

1624

17-
### 开始使用
25+
### Get Starting
1826

1927
~~~go
2028
package main
@@ -27,44 +35,44 @@ import (
2735
func main() {
2836
oldData := "useData"
2937

30-
// Base64 编码
38+
// Base64 Encode
3139
base64Data := encoding.
3240
FromString(oldData).
3341
Base64Encode().
3442
ToString()
35-
fmt.Println("Base64 编码为", base64Data)
43+
fmt.Println("Base64 Encoded", base64Data)
3644

37-
// Base64 解码
45+
// Base64 Decode
3846
base64DecodeData := encoding.
3947
FromString(base64Data).
4048
Base64Decode().
4149
ToString()
42-
fmt.Println("Base64 解码为", base64DecodeData)
50+
fmt.Println("Base64 Decoded", base64DecodeData)
4351
}
4452
~~~
4553

4654

47-
### 格式说明
55+
### Use encoding
4856

4957
~~~go
5058
base64Data := encoding.
51-
FromString(oldData). // 输入数据
52-
Base64Encode(). // 编码方式/解码方式
53-
ToString() // 输出数据
59+
FromString(oldData). // input data
60+
Base64Encode(). // encoding/decoding type
61+
ToString() // output data
5462
~~~
5563

5664

57-
### 输入输出数据
65+
### Input and Output
5866

59-
* 输入数据:
67+
* Input:
6068
`FromBytes(data []byte)`, `FromString(data string)`, `FromReader(reader io.Reader)`
61-
* 输出数据:
69+
* Output:
6270
`String() string`, `ToBytes() []byte`, `ToString() string`, `ToReader() io.Reader`
6371

6472

65-
### 常用解码编码
73+
### Encoding Types
6674

67-
* 编码方式:
75+
* Decode:
6876
`Base32Encode()`, `Base32RawEncode()`, `Base32HexEncode()`,`Base32RawHexEncode()`, `Base32EncodeWithEncoder(encoder string)`, `Base32RawEncodeWithEncoder(encoder string)`,
6977
`Base45Encode()`,
7078
`Base58Encode()`,
@@ -81,7 +89,7 @@ base64Data := encoding.
8189
`JSONEncode(data any)`, `JSONIteratorEncode(data any)`, `JSONIteratorIndentEncode(v any, prefix, indent string)`,
8290
`GobEncode(data any)`
8391

84-
* 解码方式:
92+
* Encode:
8593
`Base32Decode()`, `Base32RawDecode()`, `Base32HexDecode()`,`Base32RawHexDecode()`, `Base32DecodeWithEncoder(encoder string)`, `Base32RawDecodeWithEncoder(encoder string)`,
8694
`Base45Decode()`,
8795
`Base58Decode()`,
@@ -99,11 +107,11 @@ base64Data := encoding.
99107
`GobDecode(dst any)`
100108

101109

102-
### 开源协议
110+
### LICENSE
103111

104-
* 本软件包遵循 `Apache2` 开源协议发布,在保留本软件包版权的情况下提供个人及商业免费使用。
112+
* The library LICENSE is `Apache2`, using the library need keep the LICENSE.
105113

106114

107-
### 版权
115+
### Copyright
108116

109-
* 本软件包所属版权归 deatil(https://github.com/deatil) 所有。
117+
* Copyright deatil(https://github.com/deatil).

README_CN.md

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
## go-encoding
2+
3+
<p align="center">
4+
<a href="https://pkg.go.dev/github.com/deatil/go-encoding" ><img src="https://pkg.go.dev/badge/deatil/go-encoding.svg" alt="Go Reference"></a>
5+
<a href="https://codecov.io/gh/deatil/go-encoding" ><img src="https://codecov.io/gh/deatil/go-encoding/graph/badge.svg?token=SS2Z1IY0XL"/></a>
6+
<img src="https://goreportcard.com/badge/github.com/deatil/go-encoding" />
7+
</p>
8+
9+
中文 | [English](README.md)
10+
11+
### 项目介绍
12+
13+
* 常用的编码解码算法
14+
* 算法包括: (Hex/Base32/Base36/Base45/Base58/Base62/Base64/Base85/Base91/Base92/Base100/MorseITU/JSON)
15+
16+
17+
### 下载安装
18+
19+
~~~go
20+
go get -u github.com/deatil/go-encoding
21+
~~~
22+
23+
24+
### 开始使用
25+
26+
~~~go
27+
package main
28+
29+
import (
30+
"fmt"
31+
"github.com/deatil/go-encoding/encoding"
32+
)
33+
34+
func main() {
35+
oldData := "useData"
36+
37+
// Base64 编码
38+
base64Data := encoding.
39+
FromString(oldData).
40+
Base64Encode().
41+
ToString()
42+
fmt.Println("Base64 编码为:", base64Data)
43+
44+
// Base64 解码
45+
base64DecodeData := encoding.
46+
FromString(base64Data).
47+
Base64Decode().
48+
ToString()
49+
fmt.Println("Base64 解码为:", base64DecodeData)
50+
}
51+
~~~
52+
53+
54+
### 格式说明
55+
56+
~~~go
57+
base64Data := encoding.
58+
FromString(oldData). // 输入数据
59+
Base64Encode(). // 编码方式/解码方式
60+
ToString() // 输出数据
61+
~~~
62+
63+
64+
### 输入输出数据
65+
66+
* 输入数据:
67+
`FromBytes(data []byte)`, `FromString(data string)`, `FromReader(reader io.Reader)`
68+
* 输出数据:
69+
`String() string`, `ToBytes() []byte`, `ToString() string`, `ToReader() io.Reader`
70+
71+
72+
### 常用解码编码
73+
74+
* 编码方式:
75+
`Base32Encode()`, `Base32RawEncode()`, `Base32HexEncode()`,`Base32RawHexEncode()`, `Base32EncodeWithEncoder(encoder string)`, `Base32RawEncodeWithEncoder(encoder string)`,
76+
`Base45Encode()`,
77+
`Base58Encode()`,
78+
`Base62Encode()`,
79+
`Base64Encode()`, `Base64URLEncode()`, `Base64RawEncode()`, `Base64RawURLEncode()`, `Base64SegmentEncode()`, `Base64EncodeWithEncoder(encoder string)`,
80+
`Base85Encode()`,
81+
`Base91Encode()`,
82+
`Base100Encode()`,
83+
`Basex2Encode()`, `Basex16Encode()`, `Basex62Encode()`, `BasexEncodeWithEncoder(encoder string)`,
84+
`HexEncode()`,
85+
`MorseITUEncode()`,
86+
`SafeURLEncode()`,
87+
`SerializeEncode()`,
88+
`JSONEncode(data any)`, `JSONIteratorEncode(data any)`, `JSONIteratorIndentEncode(v any, prefix, indent string)`,
89+
`GobEncode(data any)`
90+
91+
* 解码方式:
92+
`Base32Decode()`, `Base32RawDecode()`, `Base32HexDecode()`,`Base32RawHexDecode()`, `Base32DecodeWithEncoder(encoder string)`, `Base32RawDecodeWithEncoder(encoder string)`,
93+
`Base45Decode()`,
94+
`Base58Decode()`,
95+
`Base62Decode()`,
96+
`Base64Decode()`, `Base64URLDecode()`, `Base64RawDecode()`, `Base64RawURLDecode()`, `Base64SegmentDecode(paddingAllowed ...bool)`, `Base64DecodeWithEncoder(encoder string)`,
97+
`Base85Encode()`,
98+
`Base91Decode()`,
99+
`Base100Decode()`,
100+
`Basex2Decode()`, `Basex16Decode()`, `Basex62Decode()`, `BasexDecodeWithEncoder(encoder string)`,
101+
`HexDecode()`,
102+
`MorseITUDecode()`,
103+
`SafeURLDecode()`,
104+
`SerializeDecode()`,
105+
`JSONDecode(dst any)`, `JSONIteratorDecode(dst any)`,
106+
`GobDecode(dst any)`
107+
108+
109+
### 开源协议
110+
111+
* 本软件包遵循 `Apache2` 开源协议发布,在保留本软件包版权的情况下提供个人及商业免费使用。
112+
113+
114+
### 版权
115+
116+
* 本软件包所属版权归 deatil(https://github.com/deatil) 所有。

base36/base36.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package base36
2+
3+
import (
4+
"github.com/deatil/go-encoding/baseenc"
5+
)
6+
7+
// encodeStd is the standard base36 encoding alphabet
8+
const encodeStd = "0123456789abcdefghijklmnopqrstuvwxyz"
9+
10+
// StdEncoding is the default encoding enc.
11+
var StdEncoding = NewEncoding(encodeStd)
12+
13+
/*
14+
* Encodings
15+
*/
16+
17+
// NewEncoding returns a new Encoding defined by the given alphabet, which must
18+
// be a 36-byte string that does not contain CR or LF ('\r', '\n').
19+
func NewEncoding(encoder string) *baseenc.Encoding {
20+
return baseenc.NewEncoding("base36", 36, encoder)
21+
}

0 commit comments

Comments
 (0)