2024年4月2日发(作者:)
使用 tomcat 时,相信大家都回遇到中文乱码的问题,具体表现为通过表单取得的中
文数据为乱码。
一、初级解决方法
通过一番检索后,许多人采用了如下办法,首先对取得字符串按照 iso8859-1 进行
解码转换,然后再按照 gb2312 进行编码,最后得到正确的内容。示例代码如下:
?ptname='我是中国人'
String strPtname = ameter("ptname");
strPtname = new String(es("ISO-8859-1"), "UTF-8");
String para = new String( ameter("para").getBytes("iso8859-1"),
"gb2312");
具体的原因是因为美国人在写 tomcat 时默认使用 iso8859-1 进行编码造成的。
然而,在我们的 servlet 和 jsp 页面中有大量的参数需要进行传递,这样转换的话会
带来大量的转换代码,非常不便。
二、入门级解决方法
后来,大家开始写一个过滤器,在取得客户端传过来的参数之前,通过过滤器首先将
取得的参数编码设定为 gb2312 ,然后就可以直接使用 getParameter 取得正确的参数
了。这个过滤器在 tomcat 的示例代码
jsp-examples 中有详细的使用示例, 其中过滤器在 中的设定如下,示例中
使用的是日文的编码,我们只要修改为 gb2312 即可
1.
2.
3.
4.
5.
6.
7.
过滤器的代码如下:
public class SetCharacterEncodingFilter implements Filter {
1. // 编码的字符串


发布评论