昨天遇到一个问题,用ResourceBundle读取中文字符串资源文件时,死活读不出来。
一开始以为是文件路径不对,后来发现如果默认properties文件时英文就没问题。我的项目代码是在src目录下,用
ResourceBundle.getBundle("res/strings", Locale.getDefault())
代表properties文件在src/res文件下。
在网上查了一番,才知道Java在读取properties文件时,只认识ASCii码。我一开始想在eclipse中显示汉字,而不是u8f93u5165这种形式,所以乱调整文件的字符集。eclipse的字符集转换是有问题的,我先由默认的字符集转成unicode,然后再转回来,此时字符间都被插入了一个额外的空格,所以代码中读不出来。
解决方法是用记事本将properties文件打开,另存为ASCii格式,这样代码中就可以读取出来了。