让我们先解释一下我的问题。我在这里发布了另一个类似的问题:PrintStream doesn't print correct unicode characters (UTF-16)但不知何故我没有设法克服这个问题。
我想从 android 打印到网络打印机(Xerox WC 24 PCL 或 EPSON XP-600)。
比方说:
Socket client = new Socket(_IP, PORT); // IP, port
我有以下文字:
String[] str = { "-------------------------------------------------\r\n",
" ΠΕΛΑΤΗΣ : Γεια σου Πελάτη\r\n",
" ΚΩΔΙΚΟΣ : 00000234242\r\n",
" ΔΙΕΥΘΗΝΣΗ : Περικλέους 77\r\n",
" ΤΗΛ. : 2310-892345\r\n",
"-------------------------------------------------\r\n"
};
然后我用“ISO-8859-7”、“Windows-1253”(希腊字符)调用以下代码:
OutputStreamWriter oStream = new OutputStreamWriter(os, Charset.forName(enc).newEncoder());
for(int i =0; i< str.length; i++) {
oStream.write(str[i]);
oStream.flush();
}
oStream.close();
但是打印机的结果(在eclipse的控制台中是好的)我得到了像这样的垃圾:
-------------------------------------------------
ÅéùêåÛ : èÛæÅéùêåÛ
èÛæÅ : 00000234242
Åéùêå : ÛÅéùêåÛ
ñ÷æÅ : 2310-892345
-------------------------------------------------
哪些是在这里找到的扩展 ASCII 字符:http ://www.ascii-code.com/ 谁能告诉我如何告诉打印机打印我的字符的正确格式?对于希腊字符是“ISO-8859-7”、“Windows-1253”、“”Cp1253”。这里有一个阿拉伯字符的解决方案,但它至少对我不起作用:Unicode text through socket in java
此外,PLC ISO 8859 7 没有成功。我发送如下字符串:
"\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c3\u03c2\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9\r\n",
"\033(12N\r\n", "abc à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ\r\n",
我没有运气