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