当我处理包含西班牙语字符ó
和é
的属性文件时,字符显示为?
。我尝试了不同的方法来解决这个问题,但仍然失败了:
\uxxxx
InputStreamReader
编码UTF-8
我尝试将字符串转换为字节,然后从这些字节创建一个新的字符串:
new String( val.getBytes("UTF-8"), "UTF-8")
没有任何效果。接下来我该怎么做才能解决这个问题?日语和俄语仍然可以。
答案 0 :(得分:4)
属性文件需要采用正确的编码方式。默认情况下,某些IDE(如eclipse)使用CP1252保存内容,但您需要将文件设置为UTF-8。这也是您的Java代码所必需的。
如果您尝试使用\ uxxxx字符,但默认情况下您的应用程序正在使用CP1252,则转义转义码会导致错误的字符。
如果您使用InputStreamReader强制读取为UTF-8,但您的代码和/或文件未使用UTF-8支持会导致错误的字符。
如果您使用字符串的UTF-8转换,但您的源代码是CP1252,则应该遇到同样的问题。
以前关于源代码的相关答案:Should source code be saved in UTF-8 format