JSP 中文乱码问题解决办法 当用request 对象获取客户提交的汉字字符时,会出现乱码问题,所以对含有汉字字符的信息必须进行特殊处理。 常见的几种字符集编码: ASCII 码:不支持中文 ISO-8859-1:不支持中文 GB2313、GBK:支持中文 Un ico de:支持中文 UTF-8:支持中文 在解决 JSP 中文乱码问题前,弄清以下几点: (1) w indow s 平台采用的默认字符集编码是:GBK (2) IE 浏览器默认采用UTF-8 字符集编码方式发送 Http 请求。 (3) Tomcat 在处理Get 请求时,永远采用ISO-8859-1 编码; Tomcat 在处理Post 请求时,默认采用ISO-8859-1 编码;如果进行了如下设置 request.setCharacterEncoding(“GBK”),则采用GBK 编码。 可以使用如下几种方式解决 JSP 中文乱码问题。 1、方法一:调用自定义的转换函数 <%@ page contentType="text/html;charset=GB2312" %> <%! public String getStr(String s) { String str = s; try { byte[] b = str.getBytes("ISO-8859-1"); str = new String(b); return str; } catch (Exception e) { return str; } } %> 使用内置对象request 将获取的数据,使用ISO-8859-1 进行重新编码,并保存到一个字节数组中,然后调用new String()方法,以GBK 方式将这个字节数组构造出一个新的字符串,这个新的字符串就是我们想要的结果。 适用于以下三种情况: (1) 以Get 方式提交表单,提交的数据中包含汉字字符。 (2) 以Post 方式提交表单,提交的数据中包含汉字字符。 (3) 在浏览器的地址栏中发出Http 请求时,查询字符串中包含汉字字符。 2、方法二:调用requ est.setCharacterEncoding(“GBK”); <%@ page contentType="text/html;Charset=GB2312" pageEncoding="GBK" %> <% request.setCharacterEncoding("GB2312"); %> 由于Tomcat 服务器处理 Get 请求或 Post 请求时,默认采用的编码方式是ISO-8859-1,通过内置对象request 的getParameter()方法得到的字符串是以ISO-8859-1 转换而来,这是导致乱码产生的原因之一。 为了避免 Tomcat 以ISO-8859-1 的编码方式返回字符串,对于以Post 方式提交的表单数据,可 以在通 过 内置对象request 获取数据之 前 ,调用request.setCharacterEncoding(“GBK”),明确指定对浏览器发送来的数据进行重新编码(或者称为解码)时,采用的GBK...