首页 > 解决方案 > 将 HEX 转换为 UTF-16(GUID 分区名称) - WPF 应用程序(.NET Framework)

问题描述

我有一个要转换为 UTF-16L 的十六进制字符串,如https://en.wikipedia.org/wiki/GUID_Partition_Table “分区条目 (LBA 2–33)”下的指定。十六进制字符串的长度固定为 72 字节。我不确定如何转换它。我在考虑先将其转换为字节,然后使用Encoding.BigEndianUnicode Property

此外,当我尝试使用 Encoding.UTF8.GetChars 时,我的结果中有很多空格。

static void Main(string[] args)
{
    string hexString = "4200610073006900630020006400610074006100200070006100720074006900740069006F006E000000000000000000000000000000000000000000000000000000000000000000";
    int length = hexString.Length;
    byte[] bytes = new byte[length / 2];

    for (int i = 0; i < length; i += 2){
    bytes[i / 2] = Convert.ToByte(hexString.Substring(i, 2), 16);
    }

    char[] chars = Encoding.UTF8.GetChars(bytes);

    string s = new string(chars);
    Console.WriteLine(s);
}

打印这个:

基本数据分区

(B\0a\0s\0i\0c\0 \0d\0a\0t\0a\0 \0p\0a\0r\0t\0i\0t\0i\0o\0n\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0)

在此处输入图像描述

标签: c#

解决方案


推荐阅读