首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# ESC POS专用字符

C# ESC POS专用字符
EN

Stack Overflow用户
提问于 2011-04-29 10:28:36
回答 2查看 7.4K关注 0票数 2

我在做ESC POS打印的课程。

它需要支持挪威的特殊字符:埃内奥奥勒

问题是我不能只在字符串中使用它们。

“打印数据:埃内奥奥”将打印为“要打印的数据:?”

根据文档,这些字符打印我需要的特殊字符:

(char)91张“埃埃纳”印刷品

(char)92份印刷品

(char)93份印刷品“奥尔”

123张“印刷品”

(char)124份“”字“”

125张印刷品“

,所以我的问题是:有比对每个字符进行替换更好的方法吗?

下面是连接到打印机并发送数据的代码:

代码语言:javascript
复制
        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();

解决:

代码语言:javascript
复制
Encoding nordic = Encoding.GetEncoding("IBM865");
byte[] byData = nordic.GetBytes(buffer);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-29 10:57:57

如果它是标准代码页(如北欧语言代码页865),则可以使用适当的编码:

代码语言:javascript
复制
Encoding nordic = Encoding.GetEncoding("IBM865"); 

检查支持编码中的Encoding类,以查看是否有匹配。但是从字符布局865上看,您需要自己替换字符。

您可以使用字典创建字符映射,但是很明显,一个大型的switch/case语句在开始时会做得很好(如果有一天,您可以重构它)。

票数 4
EN

Stack Overflow用户

发布于 2011-04-29 10:31:17

我不认为ASCII编码是你想要的--看看当你使用UTF-8时会发生什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5830894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档