C# 将十六进制转换为UTF-16(GUID分区名称)-WPF应用程序(.NET Framework)

C# 将十六进制转换为UTF-16(GUID分区名称)-WPF应用程序(.NET Framework),c#,C#,我有一个十六进制字符串,我想将其转换为UTF-16L,如“分区条目(LBA 2–33)”中所述。十六进制字符串的固定长度为72字节。我不知道如何转换它。我想先把它转换成字节,然后再使用 另外,当我尝试使用Encoding.UTF8.GetChars时,结果中有很多空格 static void Main(string[] args) { string hexString = "4200610073006900630020006400610074006100200070006100

我有一个十六进制字符串,我想将其转换为UTF-16L,如“分区条目(LBA 2–33)”中所述。十六进制字符串的固定长度为72字节。我不知道如何转换它。我想先把它转换成字节,然后再使用

另外,当我尝试使用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);
}
static void Main(字符串[]args)
{
字符串hexString=“420061007300690063000200064006100740061000007000610072007400069006F006E000000000000000000000000000000000000000000000000”;
int length=hexString.length;
字节[]字节=新字节[长度/2];
对于(int i=0;i
打印此文件:

B a s i c d a t a p a r t i o n

(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)


这是否回答了您的问题?我尝试了该代码,但我得到了错误:“没有数据可用于编码932。有关定义自定义编码的信息,请参阅encoding.RegisterProvider方法的文档。”这不是您要查找的相同内容吗?代码不工作,因为我得到错误“没有数据可用于编码932”。我在美国,我不需要日语字母。这是.net核心项目吗。net核心支持有限数量的编码。