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

java中新建的properties文件,编码格式为UTF-8,全是一些中文属性,保存后再打开所有属性的第一行就全变成乱码了,[001]???,[002]??,而且每行后... java中新建的properties文件,编码格式为UTF-8,全是一些中文属性,保存后再打开所有属性的第一行就全变成乱码了,[001]???,[002]??,而且每行后面跟着的“\”换行符也没用了, 展开
 我来答
Utrecht1984
2015-04-16 · TA获得超过157个赞
知道答主
回答量:72
采纳率:0%
帮助的人:86.4万
展开全部

从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以上才可以编译通过。

不出腹肌不改网名2M
2015-04-16 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:79
采纳率:0%
帮助的人:74.1万
展开全部
java 自带的properties只能用\uXXXX 这种形式表示 很不方便
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dingzi__
2015-04-16 · 超过31用户采纳过TA的回答
知道答主
回答量:91
采纳率:50%
帮助的人:40.7万
展开全部
你试试别的格式。你可能用别的格式存的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阔惹了3
2015-04-15 · 超过14用户采纳过TA的回答
知道答主
回答量:46
采纳率:100%
帮助的人:19.2万
展开全部
可能和你的文本编辑器的编码方式有关
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式