【发布时间】:2012-01-04 22:26:18
【问题描述】:
当我处理带有西班牙字符ó 和é 的属性文件时,字符显示为?。我尝试了不同的方法来解决这个问题,但仍然失败:
- 我尝试使用
\uxxxx - 我尝试将
InputStreamReader与编码UTF-8一起使用 -
我尝试将字符串转换为字节,然后从这些字节创建一个新字符串:
new String( val.getBytes("UTF-8"), "UTF-8")
没有任何效果。我接下来应该怎么做才能解决这个问题?日语和俄语还是可以的。
【问题讨论】:
-
日文和俄文字符是否保存在同一个属性文件中?你究竟是如何在其中指定它们的,你是如何阅读和展示它们的?
-
不,每种语言都有自己的属性文件。我的意思是messaages_ja_JP.properties、messages_ru_RU.properties 和西班牙语messages_es_ES.properties
-
您应该确定问题是在加载还是显示字符串。然后提供一个简短但完整的程序来演示该部分。
-
好吧,这听起来像是文件本身没有使用正确的编码保存,但是
\uXXXX应该可以工作。能否请您也回答另外两个问题?还有这个新问题:当你把一个日文字符串放在西班牙语包中时怎么样? -
好主意。我使用 FileInputStream 来读取文件,然后调用 Properties.load(new InputStreamreader(is, "UTF-8")) 来加载基于语言环境的文件。当我将日文字符复制到西班牙文包时,日文字符转换为'??????'在那个文件中。当我将西班牙语字符复制到日语包时,日语和西班牙语都失败了。
标签: java character-encoding properties-file