最新消息:发现真没时间折腾VPS,最近又换了个空间。呵呵

Java项目中properties文件的编码

在Java项目中,properties文件的默认编码是ISO-8859-1,properties文件有非ASCII码的字符时,Eclipse等工具会把其转化为\uXXXX的形式。虽然说现在的IDE都基本上都能对转码字符进行显示,但有时候客户想修改时,基本上无法修改。

我就想,能否自己指定properties文件文件的编码呢?在网上找了一下,发现用Properties的load是可以指定文件编码的。基本代码如下:

Java
Properties properties = new Properties();
InputStream inputStream = new FileInputStream("path/to/file");
try {
    Reader reader = new InputStreamReader(inputStream, "UTF-8");
    try {
        properties.load(reader);
    } finally {
        reader.close();
    }
} finally {
   inputStream.close();
}

如果要读取Jar文件里的properties文件,上面的方法就有些不适用了。这种情况下,我们可以用ClassLoader的getResource方法来取得URL,然后再取得Stream来读取properties文件。基本代码如下:

Java
Properties props = new Properties();
URL resource = getClass().getClassLoader().getResource("data.properties");         
props.load(new InputStreamReader(resource.openStream(), "UTF8"));

用上面的方法,我们就可以指定properties文件的编码了。要注意的是用这种方法读取properties文件时,反斜线()还是转义字符,要设置的值里的有反斜线()时,应该写成两个反斜线(\)。


参考地址:http://stackoverflow.com/questions/863838/problem-with-java-properties-utf8-encoding-in-eclipse

转载请注明:宇托的狗窝 » Java项目中properties文件的编码

发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址