从二进制到UTF-16文本,反之亦然

本文关键字:反之亦然 文本 UTF-16 二进制 | 更新日期: 2023-09-27 18:28:06

我想将六进制二进制转换为UTF-16

就像这个网站上的转换器一样http://sms.24cro.com/op_1_4_en.htm

注意:我不是从文件中读取二进制文件,它是作为查询字符串来到我的网站

示例输入:

06270646062700200627062d06280640064006400640064006400640064006400640064006400640064006400643

从二进制到UTF-16文本,反之亦然

这里有几个步骤:

  • 将十六进制字符串转换为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;