TomCat中文乱码

来源:互联网 发布:淘宝开网店的认证照片 编辑:程序博客网 时间:2024/05/04 04:10
       为了减少中文问题,我们首先的清楚文件的编码格式,基本上用的就是iso8859-1、gbk和utf-8三种,可以简单的理解为英文、中文和unicode三种编码;
        ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。
        而gb2312或者gbk是标准中文字符集。
        UTF-8 是 UNICODE 的一种变长字符编码,即 RFC 3629。简单的说——大字符集。可以解决多种语言文本显示问题,从而实现应用国际化和本地化。

       清楚了文件格式,为了与国际接轨,我们可以采用与java相同的文件编码unicode,就是utf-8或者utf-16格式;
       我们
首先需要把文件格式设为统一的utf-8的格式,减少乱码的可能;
       其次,我们需要对乱码的原因有清楚的认识,就是编码不一致。

      经常发生中文问题的情况:我们归纳总结为以下四种:

(1)jsp的文件保存为utf-8的格式
     
     指定编码格式:pageEncoding="utf-8"

(2)Servlet输出的时候

     response.setContentType("text/html;charset=utf-8");

(3)post方式传递参数
     
     request.setCharacterEncoding("utf-8");
     
     接收的时候,首先设定;或者用过滤器。

(4)get方式传递参数

情况一:默认情况,tomcat通过会先将变量值以UTF-8字符集编码转换为字节序列,
              再以ISO-8859-1字符集解码字节数组,构造出新的字符串对象,
              这样,我们可以通过非常规的方式,逆向转码。

 
            str=new String(str.getBytes("iso8859-1"),"utf-8");

情况二:修改
tomcat的URI的编码方式,
 
             修改server.xml,增加
             URIEncoding ="UTF-8"

 【总结】

文件统一为utf-8;
设置tomcat的默认方式为utf-8;
使用中文时先编码,再传输;
尽量使用post传参;
不支持在地址栏输入中文的传参使用。
 
0 0
原创粉丝点击