某些特殊情况下需要根据文件的16进制转换成字符
- 在linux系统用vim 保存一个文件,写入两行内容
这是测试A
这是测试B
- 用linux 的xxd 命令输出文件的16进制字节数组
xxd -g 1 -i t.txt
unsigned char t_txt[] = {
0xe8, 0xbf, 0x99, 0xe6, 0x98, 0xaf, 0xe6, 0xb5, 0x8b, 0xe8, 0xaf, 0x95,
0x41, 0x0a, 0xe8, 0xbf, 0x99, 0xe6, 0x98, 0xaf, 0xe6, 0xb5, 0x8b, 0xe8,
0xaf, 0x95, 0x42, 0x0a
};
- 用xxd命令输出文件的16 进制字符,其实就是将16进制前面的0x去掉,两个字节展示在一起。
xxd t.txt
0000000: e8bf 99e6 98af e6b5 8be8 af95 410a e8bf ............A...
0000010: 99e6 98af e6b5 8be8 af95 420a ..........B.
- 复制16进制的字节数组、16进制的字符串,到golang代码。
func main() {
byteData := []byte{
0xe8, 0xbf, 0x99, 0xe6, 0x98, 0xaf, 0xe6, 0xb5, 0x8b, 0xe8, 0xaf, 0x95,
0x41, 0x0a, 0xe8, 0xbf, 0x99, 0xe6, 0x98, 0xaf, 0xe6, 0xb5, 0x8b, 0xe8,
0xaf, 0x95, 0x42, 0x0a,
}
// 将16进制的字节数组,转换成字符串
fmt.Println("string", string(byteData))
// 将16进制的字节数组,转换成16进制的字符串
hexString := hex.EncodeToString(byteData)
fmt.Println("EncodeToString", hexString)
// 只复制文件内容,去掉空格
byteStr := "e8bf99e698afe6b58be8af95410ae8bf" + "99e698afe6b58be8af95420a"
// 将文件的16进制字符串,转换成字符串
strByte, _ := hex.DecodeString(byteStr)
fmt.Println(string(strByte))
}
- 以下是打印输出
这是测试A
这是测试B
string 这是测试A
这是测试B
EncodeToString e8bf99e698afe6b58be8af95410ae8bf99e698afe6b58be8af95420a
标签:0xe6,16,0xaf,0xe8,hex,字节,进制
From: https://www.cnblogs.com/jing1024/p/17999476