我在做ESC POS打印的课程。
它需要支持挪威的特殊字符:埃内奥奥勒
问题是我不能只在字符串中使用它们。
“打印数据:埃内奥奥”将打印为“要打印的数据:?”
根据文档,这些字符打印我需要的特殊字符:
(char)91张“埃埃纳”印刷品
(char)92份印刷品
(char)93份印刷品“奥尔”
123张“印刷品”
(char)124份“”字“”
125张印刷品“
,所以我的问题是:有比对每个字符进行替换更好的方法吗?
下面是连接到打印机并发送数据的代码:
Socket clientSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSock.NoDelay = true;
IPAddress ip = IPAddress.Parse("192.168.0.11");
IPEndPoint remoteEP = new IPEndPoint(ip, 9100);
clientSock.Connect(remoteEP);
byte[] byData = Encoding.ASCII.GetBytes(buffer);
clientSock.Send(byData);
clientSock.Close();解决:
Encoding nordic = Encoding.GetEncoding("IBM865");
byte[] byData = nordic.GetBytes(buffer);发布于 2011-04-29 10:57:57
如果它是标准代码页(如北欧语言代码页865),则可以使用适当的编码:
Encoding nordic = Encoding.GetEncoding("IBM865"); 检查支持编码中的Encoding类,以查看是否有匹配。但是从字符布局865上看,您需要自己替换字符。
您可以使用字典创建字符映射,但是很明显,一个大型的switch/case语句在开始时会做得很好(如果有一天,您可以重构它)。
发布于 2011-04-29 10:31:17
我不认为ASCII编码是你想要的--看看当你使用UTF-8时会发生什么。
https://stackoverflow.com/questions/5830894
复制相似问题