Java 输出流中的特殊字符
我有一个打印兑现票的应用程序,所以我必须打印欧元或重音符号之类的字符。我尝试了很多东西,但没有打印这些字符 像这样:Java 输出流中的特殊字符,java,android,outputstream,Java,Android,Outputstream,我有一个打印兑现票的应用程序,所以我必须打印欧元或重音符号之类的字符。我尝试了很多东西,但没有打印这些字符 像这样: String msg = ConfLogicielCentral.getEnteteTicket() + "\n"; for (int i = 0 ; i < listItem.size() ; i++ ) { msg += "\n Numero de ticket : \t\t" + listItem.get(i)
String msg = ConfLogicielCentral.getEnteteTicket() + "\n";
for (int i = 0 ; i < listItem.size() ; i++ )
{
msg += "\n Numero de ticket : \t\t" + listItem.get(i).get("noTicket") ;
msg += "\n Nom du marché : " + listItem.get(i).get("nomMarch");
msg += "\n \n Total du marche: \t\t" + listItem.get(i).get("Total");
msg += "\n" ;
msg += "****************************** \n" ;
}
msg += "\n \t Bilan Total : " + total.getText() ;
msg += "\n****************************** \n" ;
msg += "\n\n";
msg += ConfLogicielCentral.getPiedTicket() ;
msg += "\n" + "\n" +"\n" +"\n" +"\n" +"\n" + "\n";
mmOutputStream.write(msg.getBytes("ISO-8859-1"));
mmOutputStream.flush();
如果有人能帮助我,我非常感谢他
ps:对不起,我的英语不好在将消息设置为outputWriter之前,您是否尝试在消息中转义字符并替换它们?比如说
msg.replaceAll("€","\u20ac"); //or with its' html code (€) http://character-code.com/currency-html-codes.php
如果在您的进程中,行mmOutputStream.flush;不是必不可少的,删除和处理,这对我来说很有用。所以,您发送的是使用ISO-8859-1编码的。接收方期望什么编码?这真的是ISO-8859-1还是另一种编码?找出接收方的期望并使用正确的字符编码。ISO-8859-1中没有欧元字符。使用接收端支持的编码,并且能够对您传输的所有字符进行编码。我的键盘上甚至没有打印字符,而不是é和欧元。在替换特殊字符后,您是否尝试用UTF-8替换ISO-8859-1?不总是有效?它什么时候起作用,什么时候不起作用?哎呀,对不起,我的英语,你的解决方案不起作用,而且从来没有起过作用。用这个字符串data=MARIE-HÉLÈNE;字节sByte[]=data.getBytesUTF-8;数据=新的字符串字节,UTF-8;System.out.printlndata;它适用于特殊角色,也许你没有正确尝试UTF-8。这不起作用,我用奇怪的角色来代替口音