学习struts过程,碰到中文乱码问题,不管3721,go出一大堆关于这方面的文章,看了几个,觉得好象讲的都差不多,但是具体细节有些遗漏,摸索了两天,仔细体会了一些原理性文章。终于得到解决。
我的解决办法是这样的:
首先要搞清楚以下几个概念:
1.首先是.properties,.jsp文件的编码格式(eclipse中来说吧,就是文件Properties的Info的Text file encoding )
2.jsp中的"charset"的设置值
首先建立建立一个ApplicationResources_cn.properties文件
内容如下:
errors.name=用户名错误
在里面写入一些信息。并以UTF-8格式保存(我使用的是eclipse,在eclipse中设置文件的Properties属性为UTF-8既可).然后在dos下,先进入ApplicationResources_cn.properties文件所在的目录。在输入以下命令:
native2ascii -encoding UTF-8 ApplicationResources_cn.properties ApplicationResources.properties
(这里要注意 -encoding 后面的参数 UTF-8,因为前面ApplicationResources_cn.properties 是以UTF-8格式保存的,所以这里一定要要用UTF-8,要不后面再怎么弄,永远也显示不出中文。我曾经就被网上一篇文章误导了,前面说用UTF-8,后面native2ascii参数既然用gb2312!!!!!*&*&&&^&^(*#&#$&#^@)*#))
ApplicationResources_cn.properties文件也可以以gbk格式保存(eclipse中只有gbk没有gb2312)
然后native2ascii -encoding gbk ApplicationResources_cn.properties ApplicationResources.properties
不管用gbk,还是UTF-8都可以(因为这2种都支持中文显示),并且最后得到的 ApplicationResources.properties文件内容都会一样:
errors.name=u7528u6237u540du9519u8bef
然而ApplicationResources.properties文件保存的编码格式有什么限制呢?目前,个人感觉随便什么都可以,因为这个文件中没有任何中文。
.jsp文件中charset设置为gb2312,UTF-8都可以。
.jsp文件保存的编码格式和charset一一对应.
综上所述:
因为UTF-8支持所有的国际字符,所以个人建议使用 UTF-8(包括charset等 )既碰到关于字符编码的都使用UTF-8.这样会省去很多麻烦的。