【发布时间】:2018-10-15 20:33:28
【问题描述】:
我有一个要转换为字符的十六进制字符串。这是我正在使用的功能。
public string GetAsciiString(bool replaceNewline = true)
{
char[] chars = new char[data.Length + 1];
byte[] bytes = new byte[data.Length + 1];
bytes[0] = opcode;
Array.Copy(data, 0, bytes, 1, data.Length);
for (int i = 0; i < bytes.Length; ++i)
{
byte value = bytes[i];
if ((value == '\n' || value == '\r') && !replaceNewline)
chars[i] = (char)value;
else if (value < 32 || value > 126)
chars[i] = '.';
else chars[i] = (char)value;
}
return new string(chars);
}
但是,这仅显示英文字符而不是韩文字符。关于如何让它显示韩语的任何想法?
编辑:我发现问题在于我正在转换为 Ascii。
【问题讨论】:
-
ASCII 中不存在韩语字符。
-
您应该查看Character Encoding in .NET。在将字符串编码为十六进制之前,您需要知道字符串是如何编码的。
-
编码是 ks_c_5601-1987 那么我如何从十六进制中获取可读字符呢?