c# - 将 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)
解决方案
推荐阅读
- javascript - 使用正则表达式 (javascript) 检查字符串中的所有字母是否都是辅音
- javascript - 如何从数据中创建 OHLC 持续 5 分钟?
- osgi - Felix:无法在 JDK 9 上添加扩展包
- python - Wordpress 上的 Python 模型
- javascript - 使用 get/set 定义一个属性,其行为类似于普通属性
- javascript - highcharts-react-react 状态的官方渲染问题
- javascript - for (x in y) VS for (i = 0; i < y.length; i++) 其中 x 是一个对象数组
- java - 使用 Java 在 Spring Boot 中配置 log4j 文件
- woocommerce - 批量更新产品可编程性
- sql - SQL Server ParseName 仅适用于前 4 个值