将希腊字符转换为终端十六进制字体

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(字体对我来说看起来很时髦,但浏览器似乎喜欢它) .

你很接近:

  1. 将代码页从 Windows (Win-1253) 更改为 MS DOS一个(737)
  2. 如果您想查看表示为字符串的代码,我建议使用 LinqString.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 代码。