1.JSP 页面中文乱码:
<%@ page language="java" contentType="text/html;charset=gb2312"%>
2.URL 传递参数中文乱码:
需要修改 Tomcat 的 conf 目录下的 server.xml 配置文件。具体修改方法如下。
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
在上面的这段代码中间添加 URl 编码的设置即可,即在 port="8080" 后面添加 URI 编码设置 URIEncoding="gb2312" 即可。重新启动 Tomcat 服务器。
3.表单提交中文乱码:
out.println("表单输入 userName 的值:"+new String(userName.getBytes("ISO-8859-1"),"gb2312")+"<br>");
或者使用过滤器filter。
4.数据库操作中文乱码:
数据库创建的时候就是支持中文编码的:
在 JDBC 连接数据库的时候可以使用类似下面这种形式的 URL。
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs;useUnicode=true;characterEncoding=gb2312
数据库创建的时候编码的格式为ISO-8859-1:
这时候只有在读取数据库的时候进行转码,使用的方法还是上一节中的转码方法,在这里把它整理成一个转码的函 数。
public String encoder(String str) throws UnsupportedEncodingException
{
String result = new String(str.getBytes("ISO-ISO-8859-1"),"gb2312");
return result;
}
有了这个转码函数, 在读取数据库的时候就可以使用 encoder(rs.getString(“列名”)), 这样取得中文字
符串的内容就可以正常显示。