java中新建的properties文件保存后中文第一行变成乱码,尀换行符也没用了

2025-01-08 14:14:53
推荐回答(4个)
回答1:

从java6开始properties文件已经可以直接使用UTF-8编码了,也就是说不用特别写成\uXXXX 这种形式在用native2ascii转换了。

楼主碰到的问题,很可能是在IDE(Eclipse,Netbeans等)中使用了默认的properties专用的编辑器吧?解决的办法是在IDE中设置不使用默认的properties专用的编辑器打开,或者直接用文本编辑器(比如Notepad++等)编辑并保存。使用的时候可以直接指定用utf8编码读取。

import java.io.*;
import java.util.Properties;

public class PropertiesWithUtf8 {
    static Properties loadUtf8Properties(String resourceName) throws IOException {
        try (InputStream is = PropertiesWithUtf8.class.getResourceAsStream(resourceName);
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
BufferedReader reader = new BufferedReader(isr)) {
Properties result = new Properties();
            result.load(reader);
            return result;
        }
    }
 
    public static void main(String[] args) throws IOException {
        Properties prop = loadUtf8Properties("/utf8.properties");
 
        System.out.println(prop.getProperty("key1"));
    }
}

PS:上面用到了try-with-resources,需要java7以上才可以编译通过。

回答2:

java 自带的properties只能用\uXXXX 这种形式表示 很不方便

回答3:

你试试别的格式。你可能用别的格式存的。

回答4:

可能和你的文本编辑器的编码方式有关