项目开发时,在配置springmvc 校验错误提示信息时,配置到properties的中文,在前端取出时,显示为乱码,可以确定properties 配置文件已经被设为UTF-8编码,在springmvc.xml 给处理器适配器配置指定错误提示信息配置文件时,资源文件格式也是设为UTF-8的,但是调试时发现通过注解获取的properties包含中文的属性就是乱码,网上搜索了一晚上才找到解决方案,具体如下:
1 java读取一些自写的properties配置文件,如果包含中文则需要进行转码读取或转码存储
普通的方法无非两种:
① 用java命令行工具native2ascii,这种方法是转码存储。
② java读取properties key的时候用转码new String( key.getBytes("ISO-8859-1"),"gbk" ),这种方法是转码读取。
第一种方法优点在于编写的时候没有任何障碍,缺点是在部署的时候麻烦点,需要用命令转了以后再放到项目里,如果频繁更改文件内容的话,是挺烦的。
第二种方法优点在于编写键值对的时候没有障碍,部署时也无需再手动更改编码,但是在java代码里需要更改读取方式,而且这种读取时转码也挺费时的。
2 那么有没有办法既不用读取时更改代码转码,也不用存储时手工转码的方法呢
答案是有的,myeclipse自带的编辑器myeclipse properties editor就可以,在工程里用它打开properties文件(默认打开方式),然后选properties标签页,这时能看到排列整齐的键值对,只需要填值就可以了,myeclipse会自动转为ascii的编码来存储的。
myeclipse properties editor:
然后双击打开查看,输入的键值对已经自动被转为ascii的编码,前端取出也不会出现乱码
如果没有myeclipse怎么办
用UltraEdit编辑器,编写中文配置文件prop_cn.properties,在保存后再点击另存为,文件名为prop.properties,编码选择unicode ascii就可以了
转自:http://blog.sina.com.cn/s/blog_74a86d520101aj24.html