Properties prop = new Properties();
prop.load(new FileInputStresm(new File(getClass().getResource("1.cfg").toURI().getPath())));
文件1.cfg中的有name = 铁拐李
然后String name = prop.getProperty("name");得出的name是乱码
于是我就 name = new String(name.getBytes("ISO8859-1"), "GBK"); 得到就是正确的 “铁拐李”
但是我通过prop.setProperty("name", "文章");来改变配置文件中name的值后,
1.cfg中name的值出现的是乱码,再用上面的方法读取name的值也是乱码,这个问题该怎么解决啊?
PS:我的问题归结起来就是怎么样才能使我可以直接打开1.cfg文件修改name的值,也可以通过程序
读取1.cfg中name的值,也可以通过程序修改name的值,
当然,我所说的这个修改的值都是中文,都不出现乱码啊?
prop.load(new FileInputStresm(new File(getClass().getResource("1.cfg").toURI().getPath())));
文件1.cfg中的有name = 铁拐李
然后String name = prop.getProperty("name");得出的name是乱码
于是我就 name = new String(name.getBytes("ISO8859-1"), "GBK"); 得到就是正确的 “铁拐李”
但是我通过prop.setProperty("name", "文章");来改变配置文件中name的值后,
1.cfg中name的值出现的是乱码,再用上面的方法读取name的值也是乱码,这个问题该怎么解决啊?
PS:我的问题归结起来就是怎么样才能使我可以直接打开1.cfg文件修改name的值,也可以通过程序
读取1.cfg中name的值,也可以通过程序修改name的值,
当然,我所说的这个修改的值都是中文,都不出现乱码啊?
如:
C:/.....>native2ascii
铁拐李
\u94c1\u62d0\u674e
直接双击native2ascii.exe 写上需要转换的中文 回车 得到相应编码 把编码粘到properties文件中就行了
当然也可以 整个文件转化
除了这个方法,还有没有别的方法,比如说我直接写“铁拐李”在1.cfg中,然后在代码里面做文章 得到我想要的结果啊?
File file = new File(getClass().getResource("1.cfg").toURI().getPath());
prop.setProperty("name", "文章");
prop.store(new FileOutputStream(file), "no comments");prop.load(new FileInputStream(file));
String name = prop.getProperty("name");
System.out.println(name);
如果按这种方式写:
prop.setProperty("name", "文章");
prop.store(new FileOutputStream(file), "no comments");写进去的就是unicode,读就按照标准模式即可
prop.load(new FileInputStream(file));
String name = prop.getProperty("name");
1.cfg中name的值出现的是乱码,再用上面的方法读取name的值也是乱码,这个问题该怎么解决啊?
===========================================晕 怎么那么急呢 ,你说通过setProperty就乱码了,但是我没出现啊,不知道你是怎么弄出来的
native2ascii [option] [inputfile] [outputfile]
说明:
-[options]:表示命令开关,有两个选项可供选择
-reverse:将Unicode编码转为本地或者指定编码,不指定编码情况下,将转为本地编码。
-encoding encoding_name:转换为指定编码,encoding_name为编码名称。[inputfile] 表示输入文件全名。
[outputfile] 输出文件名。如果缺少此参数,将输出到控制台。例:native2ascii -encoding GBK a.cfg a_cn.cfg(将所有的中文转成ascii编码)