背景:我正在开发一个C#的POS软件,需要在收据上打印繁体中文字符。
硬件:EPSON TM-T20通过USB连接进行通信
代码:
string text = "鄆";
StringBuilder builder = new StringBuilder();
// Traditional Chinese (big5)
var encoding = Encoding.GetEncoding(950);
// convert the text into a byte array
byte[] source = Encoding.Unicode.GetBytes(text);
// convert that byte array to the new codepage.
byte[] converted = Encoding.Convert(Encoding.Unicode, encoding, source);
// take multi-byte characters and encode them as separate ascii characters
string result = Encoding.GetEncoding("ISO-8859-1").GetString(converted);
// Print
m_Printer.PrintNormal(PrinterStation.Receipt, "\u001b|N" + result + "\n");
这是jkealey在http://blog.lavablast.com/post/2010/01/15/Simplified-Chinese-on-Epson-TM-T88IV-Receipt-Printer.aspx
提供的代码问题:在使用jkealey提供的代码之前,打印机打印出“?”而不是中文字符,但现在打印出“ÜP”。
在Epson TM-T20实用程序Ver.1.00上,我对代码页和国际字符集进行了以下字体设置。 (因为我是新用户,我无法发布图片)
代码页:PC850(多语言) 国际性格:中国
我不知道我在哪里出错了,请有人帮我解决这个问题。
非常感谢先进!
林檎