Java用\ u读取unicode

我的java程序正在从文本文件中读取unicode。 例如\uffff ..从java GUI查看没有问题,但是当我尝试打印出来时,所有的措辞都被覆盖了,是因为\u ,还是以其他方式避免覆盖的单词?

抱歉我的英语坏了..谢谢。

符号\uXXXX主要仅出现在.java.properties文件中。 在那里它被读作Unicode代码点。 Unicode文本(=使用所有类型的特殊字符)通常使用UTF-8格式(尽管有时也使用UTF16LE和UTF16BE)。

本文内容如下:

 BufferedReader in = new BufferedReader( new InputStreamReader(new FileInputStream(file), "UTF-8")); 

并且(为了良好的秩序)写成

 new OutputStreamWriter(new FileOutputStream(file), "UTF-8") new PrintWriter(file, "UTF-8") 

特别是没有使用FileReader和FileWriter的旧实用程序类使用平台编码。

如果文本将计算\u20AC ,那将是不规则的,并且将按字面打印(反斜杠,u,20AC),

现在,如果你的意思是Unicode字符的问题超出正常的ASCII范围,比如欧元符号 ,那么它可能是字体问题,或者需要转换,比如Windows Latin 1: "Windows-1252"

如您所知,’\ u’也称为Unicode转义用于表示国际字符。 因此,您无法从键盘本身输入该字符,您需要使用unicode序列来生成该字符。

但是,如果这样的国际字符已经存在于文本文件中,那么您可以阅读它。 Java提供了class Charset ,请参考http://docs.oracle.com/javase/1.4.2/docs/api/java/nio/charset/Charset.html上的API。

您应该使用Java中的Reader / Writer API来处理这些字符。 因为它支持16位字符,其中包括除字母和ASCII之外的所有不同语言。 其中InputStream / OutputStream仅支持8位字符。

所以要阅读这些字符,您可以使用:

 BufferedReader in = new BufferedReader( new InputStreamReader(new FileInputStream(file), "UTF-8")); 

这里UTF-8是CharSet。

同样,您可以打印数据。 但是在打印的地方,编辑器(打印字符的位置)必须支持unicode字符。

您还可以参考以下链接获取来自不同人的更多回复: 使用java读取unicode文本文件