java写properties时中文问题

mikewolf113 2005-06-23 10:36:34
小弟在用java写properties类型的文件时,插入中文会被系统自动转换成\u****的字符串,请问如何可以直接写入中文。
...全文
2798 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
thomas_20 2005-06-28
  • 打赏
  • 举报
回复
一般我作得項目中也是用ChDw(米) 的方法的
mikewolf113 2005-06-28
  • 打赏
  • 举报
回复
唉,其实是我们这里一些猪头,希望可以手工去修改这个文件,所以才要显示成中文
cuij7718 2005-06-27
  • 打赏
  • 举报
回复
恩,我和ChDw(米) 的方法一样,保留一个中文的,在部署的时候用native2ascii转换一下,这样读取的时候就不存在乱码问题,而且就直接读取就可以了,也不用考虑转码问题
jFresH_MaN 2005-06-27
  • 打赏
  • 举报
回复
其实这个问题就不是问题
中文保存成\u****其实就是其Unicode,java默认就是Unicode编码的
正如上面 vtable9999(肝肝肝肝) 所说,properties类里面的saveConvert会先判断这个字符是否是中文,如果是就会转换成\u****的标准unicode形式.

其实这样的形式对于我们使用中文是没有影响的,你读取出来打印一样会是正确的中文显示
如果需要看到这个文件的中文显示,你可以使用native2ascii转换过来
不过我个人认为这个是没有必要的.
OnlyFor_love 2005-06-27
  • 打赏
  • 举报
回复
在读取配置文件的时候,如果是中文的,那么可以把它进行一下转换,
String username = new String("我是中国人".getBytes("ISO8859_1"), "GBK")
gzhua99 2005-06-27
  • 打赏
  • 举报
回复
你用记事本去写中文在里面存储为.prperties文件, 你看看中文会不会显示? 当然会,但是你转到jsp 叶面里面你试一下,乱码,实际上,插入中文会被系统自动转换成\u****的字符串,这多数是UTF-8的编码,在你用resource budle 获得了这个文件,读取时,是按某个字符集来读取的,除非你自定义。 所以就算你自己写了一个文件,含中文,然后你也必须利用工具转化,我记得在jdk/bin里有个 native2ascii.exe ,他就是可以转换用的。
qingzhuang 2005-06-27
  • 打赏
  • 举报
回复
偷分
mikewolf113 2005-06-27
  • 打赏
  • 举报
回复
回 yangqu(曲洋) 我哪里是团长,分明是小兵。
大家的回复,我在试验,等完了之后,就散分。
谢谢啦,缘分啊!
ChDw 2005-06-24
  • 打赏
  • 举报
回复
其实使用Java本身带的都没有什么问题啦,只要你自己看着不爽。我一般都是留着一份原来中文字符的

然后使用的时候才native2ascii转换一下,不是太必要自己写一个
vtable9999 2005-06-24
  • 打赏
  • 举报
回复
这个问题我是这样解决的,从java.util.Properties继承一个自己的Properties类,把java.util.Properties源代码的saveConvert拿出来,将下面所示中文转换的代码注释掉即可。

转换代码:
if ((aChar < 0x0020) || (aChar > 0x007e)) {
outBuffer.append('\\');
outBuffer.append('u');
outBuffer.append(toHex((aChar >> 12) & 0xF));
outBuffer.append(toHex((aChar >> 8) & 0xF));
outBuffer.append(toHex((aChar >> 4) & 0xF));
outBuffer.append(toHex( aChar & 0xF));
} else {
if (specialSaveChars.indexOf(aChar) != -1)
outBuffer.append('\\');
outBuffer.append(aChar);
}
Ginger547 2005-06-23
  • 打赏
  • 举报
回复
我在写xml问题时也出现过这样的写不进去 写进去就自动修改 我查了很久发现 是MS的编码问题

不知道你说的是不是也是这样的问题
不徻写代码 2005-06-23
  • 打赏
  • 举报
回复
resource budle是不是没有直接写入properties文件的方法,自己用文件流往里写????
JMagic 2005-06-23
  • 打赏
  • 举报
回复
我知道如何吧中文读进来,要进行一次编码转换,就是吧iso-8859-1转换成gbk的就可以了,写的还不知道
wallex 2005-06-23
  • 打赏
  • 举报
回复
mark,学习
ChDw 2005-06-23
  • 打赏
  • 举报
回复
Java就是必须这样保存中文到Properties中的

如果保存和读取都是Java程序,这样你根本无需理会它,反正肯定能够读取正确的

如果是另外程序读取,则你自己写保存方法就行了,具体就是你遍历Properties中的所有内容逐行写入文件中
zhuzhichao 2005-06-23
  • 打赏
  • 举报
回复
我以前试过转码的方式去存储,一直都没有成功。
但读的时候,如果是中文的,可以读出来无误的结果。
就是存的时候不知道该怎样直接存成中文。

有没有高手解决过这个问题?
yangqu 2005-06-23
  • 打赏
  • 举报
回复
喂!这不是狼军团长吗?
这里遇到了,有趣!
yangqu 2005-06-23
  • 打赏
  • 举报
回复
据我所知,不行吧,必须使用\u****,不过你可以自己写一个elipse插件,来做properties的中文可视化的编辑界面。
bevin1010 2005-06-23
  • 打赏
  • 举报
回复
建议你用xml做配置文件,properties作配置文件是过时的作法,用xml可以指定编码方式,而且读取也不困难。
bevin1010 2005-06-23
  • 打赏
  • 举报
回复
你的properties文件,保存的时侯它会以操作系统默认的编码方式保存的,或者是某些编辑器默认的编码方式保存的,所以你在程序里面读取文件的时侯,要进行相应的编码转换,比如你用fileinputstream读取的时侯要指定读取流的编码方式为文件的编码方式。如果编码方式不是gb2312,你可以读取以后再转换编码为gb2312。首先有一点儿,你必须知道properties文件的编码方式!
加载更多回复(3)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧