1. jsp页面pageEncoding问题
如果页面指定了pageEncoding="ISO-8859-1",那么即使在过滤器中设置了
页面也仍然会出现乱码.
此时,在页面上调用response.getCharacterEncoding(); 输出 ISO-8859-1 ,说明对response的设置没有取代在pageEncoding中的设置.
解决方法: 所有页面pageEncoding设置为UTF-8.
2. properties文件加载
2.1 加载方式
properties文件的加载方式大概可以通过两个类来进行:
ResourceBundle和Properties
前者提供一种多语言环境下的加载方式,即根据传入的Locale来加载不用语言下的文件.
后者则没有提供多语种的支持, 这一点可以通过Properties的load方法看出(load只是从一个输入流中读取,也就是说对于多语言文件的加载要依赖于我们自己对InputStream的控制)
但是同时Properties提供了一种读写的方式,即可以方便的修改properties文件中的内容.这就使得这个类变得无法替代,因为很多时候我们还是需要修改properties文件中的内容的.
2.2 properties文件的编码方式
既然是多语言,那个文件的编码自然是选择UTF-8了.
但是是不是一定要通过native2ascii进行ascii码的转换?
答案当然是否定的.
情况一: properties文件中的内容已经转变成ascii码的读取方式(如: args=/uxxxx)
情况二: properties文件中的内容不是unicode(如: args=中国)
那么,上面的代码就需要修改成
也许有人会问, 为什么会出现这两种情况? 我们在使用过程中都用unicode不就行了?
可是相信大家都知道unicode有多么难读吧(现在有工具可以直接修改,方便多了)
对于一个不需要修改的properties文件,那么没问题,一次转化就解决问题,毫无疑问的选择unicode
但是如果是可能经常变化的文件内容,或者邮件模板之类的强调易读性的文件.我相信有很多人就会选择直接使用中文的资源文件了
3. urlEncoding
这部分请参考http://blog.youkuaiyun.com/yzhz/archive/2007/07/03/1676796.aspx
我这里就不重复了.