【发布时间】:2014-10-28 02:00:04
【问题描述】:
我有一个这样的 ascii 字符的文档:
~recÛßå ^ÿìü P ` pÀ 0Ðÿp àÀ
```^^ÚÞâ ^ÿòüü P ÿ ÿà 0ÿ 0ÿÐ €
```^^ÚÞã hÿòüü T
等等
现在我希望这些字符转换成这样的十六进制字符:
037E038D03720365036301DB01DF01E50012005EFFEC0FFC0000005000000000000000600090027001C0003001D0FF7000E003C00D036003600360035E035E01DA01DE01E20012005EFFF20FFC0FFC0050000000000000FFA0FFE002200130FFA00130FFD0012003800D036003600360035E035E01DA01DE01E300090068FFF20FFC0FFC0054 等
我的代码:
var byteArray = Encoding.UTF8.GetBytes(inputAscii);
var hexchars = "";
var i = 0;
while (i != byteArray.Length)
{
hexchars += (byteArray[i]).ToString("X2");
}
我也试过 var byteArray = Encoding.Default.GetBytes(inputAscii);和编码ASCII。你能帮助我吗?
【问题讨论】:
-
旁注:这些不是“ASCII 字符”。
-
您可能希望将文件作为二进制而不是文本读取。
-
这篇文章是重复的,因为转换字节->十六进制被覆盖了很多次。请注意,您的代码缺少
i++(或使用for/foreach),但不清楚是复制/粘贴错误还是实际问题,因为您没有发布代码有什么问题。 -
我的问题是,例如对于字符“”,我的代码使用 3F 而不是 8D 对其进行编码