Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 输出流中的特殊字符_Java_Android_Outputstream - Fatal编程技术网

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 (&euro;) 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。这不起作用,我用奇怪的角色来代替口音