将希腊字符转换为终端十六进制字体
Convert Greek Characters to Terminal Hex Font
我需要将希腊字符转换为 charmap 终端字体十六进制值。
示例如何转换
string test="ΞΥΔΙ";
十六进制值"\0x8D.......等等.
如果将从字符串转换为十六进制,我会得到错误的十六进制值
byte[] ba = Encoding.GetEncoding(1253).GetBytes("ΨΓΣΦ");
var hexString = BitConverter.ToString(ba);
MessageBox.Show(hexString);
来自字符“Ξ”的示例我得到 0xCE
根据我的测试,您的实施实际上没有问题。
我刚刚使用了 Windows 计算器和 Wikipedia 1253 编码 table。
我搜索了 'Ξ' 字符,虽然我对希腊字符一无所知,但简单的搜索显示该字符确实匹配 0xCE(字体对我来说看起来很时髦,但浏览器似乎喜欢它) .
你很接近:
- 将代码页从 Windows (Win-1253) 更改为 MS DOS一个(737)
- 如果您想查看表示为字符串的代码,我建议使用 Linq 和
String.Join
像这样:
// Terminal uses MS DOS Code Page which is 737 (not Win-1253)
byte[] ba = Encoding.GetEncoding(737).GetBytes("ΞΥΔΙ");
// Let's use Linq to print out a test
var hexString = string.Join(" ", ba.Select(c => $"0x{(int)c:X2}"));
Console.Write(hexString);
结果:
0x8D 0x93 0x83 0x88
请注意 Ξ
有 0x8D
代码。
我需要将希腊字符转换为 charmap 终端字体十六进制值。
示例如何转换
string test="ΞΥΔΙ";
十六进制值"\0x8D.......等等.
如果将从字符串转换为十六进制,我会得到错误的十六进制值
byte[] ba = Encoding.GetEncoding(1253).GetBytes("ΨΓΣΦ");
var hexString = BitConverter.ToString(ba);
MessageBox.Show(hexString);
来自字符“Ξ”的示例我得到 0xCE
根据我的测试,您的实施实际上没有问题。
我刚刚使用了 Windows 计算器和 Wikipedia 1253 编码 table。
我搜索了 'Ξ' 字符,虽然我对希腊字符一无所知,但简单的搜索显示该字符确实匹配 0xCE(字体对我来说看起来很时髦,但浏览器似乎喜欢它) .
你很接近:
- 将代码页从 Windows (Win-1253) 更改为 MS DOS一个(737)
- 如果您想查看表示为字符串的代码,我建议使用 Linq 和
String.Join
像这样:
// Terminal uses MS DOS Code Page which is 737 (not Win-1253)
byte[] ba = Encoding.GetEncoding(737).GetBytes("ΞΥΔΙ");
// Let's use Linq to print out a test
var hexString = string.Join(" ", ba.Select(c => $"0x{(int)c:X2}"));
Console.Write(hexString);
结果:
0x8D 0x93 0x83 0x88
请注意 Ξ
有 0x8D
代码。