Abd*_*Haj 4 .net c# encoding character-encoding codepages
我有一个支持CodePage 1001阿拉伯语的Star Micronics TSP,如何使用C#将UTF-8转换为该特定代码页?
更新:我发现CodePage 864与打印机兼容,我尝试发送十六进制值,我得到了正确的字符,
myPrinter.PrintNormal(PrinterStation.Receipt, "\xFE8D");Run Code Online (Sandbox Code Playgroud)
我尝试以下将字符串转换为codePage 864:
Encoding enc = Encoding.GetEncoding(864);
byte[] arr = enc.GetBytes("??????");Run Code Online (Sandbox Code Playgroud)
我在编码之后得到的字节arr值值{63,63,63,63,63,63}是错误的,甚至字节数也是错误的,因为它是一个双字节字符.
未经测试,但是:
String s = Encoding.UTF8.GetString(bytes);
Encoding enc = Encoding.GetEncoding(1001);
byte[] arr2 = enc.GetBytes(s);
Run Code Online (Sandbox Code Playgroud)
当然,如果你实际上是以字符串开头的话,请跳过第一行,但是因为你提到了UTF-8,所以我假设是二进制.
显然,对于大数据量,您可以使用TextReader/ TextWriter(每个都带有编码) - 但同样的想法.