西班牙语字符óé在Java属性中显示错误

时间:2011-11-23 16:09:29

标签: java character-encoding properties-file

当我处理包含西班牙语字符óé的属性文件时,字符显示为?。我尝试了不同的方法来解决这个问题,但仍然失败了:

  • 我尝试使用\uxxxx
  • 我尝试使用InputStreamReader编码UTF-8
  • 我尝试将字符串转换为字节,然后从这些字节创建一个新的字符串:

    new String( val.getBytes("UTF-8"), "UTF-8")
    

没有任何效果。接下来我该怎么做才能解决这个问题?日语和俄语仍然可以。

1 个答案:

答案 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

  • Notepad ++有一个菜单可以查看文件的格式并在“格式”菜单中进行更改,您应该将文件视为应该由其他格式打开,或者您应该将文件转换为其他文件格式,如“ UTF-8"