从二进制到UTF-16文本,反之亦然
本文关键字:反之亦然 文本 UTF-16 二进制 | 更新日期: 2023-09-27 18:28:06
我想将六进制二进制转换为UTF-16
就像这个网站上的转换器一样http://sms.24cro.com/op_1_4_en.htm
注意:我不是从文件中读取二进制文件,它是作为查询字符串来到我的网站
示例输入:
06270646062700200627062d06280640064006400640064006400640064006400640064006400640064006400643
这里有几个步骤:
- 将十六进制字符串转换为
byte[]
- 将
byte[]
转换为字符串
第二个是琐碎的,例如:
byte[] blob = ...
string s = Encoding.Unicode.GetString(blob);
那么第一个怎么样?每对都是一个字节,所以:
byte[] blob = new byte[input.Length / 2];
对于每对,我们需要转换一个字节:
for(int i = 0; i < blob.Length ; i++) {
string pair = input.Substring(2 * i, 2);
blob[i] = Convert.ToByte(pair, 16); // from hex to byte
}
所以把这些放在一起:
byte[] blob = new byte[input.Length / 2];
for(int i = 0; i < blob.Length ; i++) {
string pair = input.Substring(2 * i, 2);
blob[i] = Convert.ToByte(pair, 16); // from hex to byte
}
string s = Encoding.Unicode.GetString(blob);
请找到将hexa转换为阿拉伯语的代码。
byte[] blob = new byte[text1.Text.Length / 2];
for (int i = 0; i < blob.Length; i++)
{
string pair = text1.Text.Substring(2 * i, 2);
blob[i] = Convert.ToByte(pair,16); // from hex to byte
}
string s;//
s = Encoding.BigEndianUnicode.GetString(blob);
Label3.Text = s;