C#热敏打印机不';t打印阿拉伯字符

C#热敏打印机不';t打印阿拉伯字符,c#,C#,我正在尝试用热敏打印机打印阿拉伯语字符,我尝试了很多解决方案,但到目前为止没有任何效果 我有一行是打印字符串: string ArabicChars = "اللغة العربية"; e.PrintLine(ArabicChars); 打印机打印时,打印的字符和符号不可读 有人能帮我修一下吗 打印机型号:BTP-R880NPII 我用于打印到热敏打印机的库: 请注意,我曾尝试使用记事本在打印机上打印,它打印的是阿拉伯语,但从C#开始,它的打印方式类似于Unicode符号

我正在尝试用热敏打印机打印阿拉伯语字符,我尝试了很多解决方案,但到目前为止没有任何效果

我有一行是打印字符串:

string ArabicChars = "اللغة العربية";
e.PrintLine(ArabicChars);
打印机打印时,打印的字符和符号不可读

有人能帮我修一下吗

打印机型号:BTP-R880NPII

我用于打印到热敏打印机的库:

请注意,我曾尝试使用记事本在打印机上打印,它打印的是阿拉伯语,但从C#开始,它的打印方式类似于Unicode符号

是的,我可以打印记事本和word阿拉伯语文本

我正在打印一个叫做ESCPOS_NET的库

好吧,这就是你的问题,扔掉你的破图书馆。如果记事本和Word可以打印,则您的打印机有一个常规的旧Windows驱动程序,您可以使用普通的.Net打印API:

是的,我可以打印记事本和word阿拉伯语文本

我正在打印一个叫做ESCPOS_NET的库

好吧,这就是你的问题,扔掉你的破图书馆。如果记事本和Word可以打印,则您的打印机有一个常规的旧Windows驱动程序,您可以使用普通的.Net打印API:

尝试以下几行:

string ArabicChars = "اللغة العربية"; 
var arabic = Encoding.GetEncoding(1256); 
var bytes = arabic.GetBytes(ArabicChars); 
e.PrintLine(arabic.GetString(bytes));
试试下面这些句子:

string ArabicChars = "اللغة العربية"; 
var arabic = Encoding.GetEncoding(1256); 
var bytes = arabic.GetBytes(ArabicChars); 
e.PrintLine(arabic.GetString(bytes));


您使用的打印机型号是什么?BTP-R880NPII..@Simond该打印机有支持阿拉伯语的字体吗?@KenWhite我检查了打印机属性和字体部分,我有英语、Windows语言和中文来选择它们。顺便说一句,我想我需要转换我要打印的字符串,但我不知道如何进行该程序。您使用的打印机型号是什么?BTP-R880NPII..@Simonde该打印机是否有支持阿拉伯语的字体?@KenWhite我查看了打印机属性和字体部分,我有英文、Windows语言和中文可供选择顺便说一句,实际上我认为我需要转换我试图打印的字符串,但我不知道如何通过编程实现。实际上,这对我很有效,你能帮我在这里设置阿拉伯文编码:字符串文本=”中文菜单"; var encoding=System.Text.encoding.GetEncoding(“GB18030”);byte[]bytes=encoding.GetBytes(Text);string isoString=encoding.GetEncoding(“ISO-8859-1”).GetString(bytes);var e=new EPSON();printer.Write(ByteSplicer.Combine(e.Initialize(),//e.CodePage(CodePage.CHINA),e.PrintLine(isoString),e.FullCut());如果它能工作,那你问什么?它只适用于中文而不适用于阿拉伯文!是的,你说你的打印机只有内置的英文和中文字体。那么为什么你总是用错误的方式来处理这个问题呢?像普通人一样,用你的打印机驱动程序给它输入操作系统的字体。实际上这对我很有效,你能帮我设置字体吗此处为阿拉伯语编码:字符串文本=”中文菜单“var encoding=System.Text.encoding.GetEncoding(“GB18030”);byte[]bytes=encoding.GetBytes(Text);string isoString=encoding.GetEncoding(“ISO-8859-1”).GetString(bytes);var e=new EPSON();printer.Write(ByteSplicer.Combine)(e.Initialize(),//e.CodePage(CodePage.CHINA),e.PrintLine(isoString),e.FullCut());如果它有效,那你问什么?它只适用于中文而不适用于阿拉伯文!是的,你说你的打印机只有内置的英文和中文字体。那么为什么你总是用错误的方式来敲你的头呢?像正常人一样,用你的打印机驱动程序输入你的操作系统的字体。实际上不起作用…仍然打印sameNot不起作用事实上…还是一样的