中文乱码问题
来源:互联网 发布:betterzip mac 破解 编辑:程序博客网 时间:2024/05/07 09:50
中文乱码问题
一、 Web页面(jsp)上的中文乱码:
问题描述:要把一个jsp页面上写入的一段中文显示到另一个jsp页面上时(或直接在控制台上显示)出现“???”这样的乱码。
解决(以Tomcat Web 服务器为基础):
1. 在Tomcat安装目录下的conf/Web.xml中加入:
<servlet>
<servlet-name>jsp</servlet-name>
<init-param>
<param-name>parameterEncoding</param-name>
<param-value>gbk</param-value>
</init-param>
<init-param>
<param-name>inputEncoding</param-name>
<param-value>gb2312</param-value>
</init-param>
<init-param>
<param-name>outputEncoding</param-name>
<param-value>gb2312</param-value>
</init-param>
<init-param>
<param-name>fileEncoding</param-name>
<param-value>gb2312</param-value>
</init-param>
<init-param>
<param-name>javaEncoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</servlet>
2. 在Tomcat安装目录下的conf/servlet.xml中的Connector字段中加入设置:
<Connector port="8080" URIEncoding="GB2312" ……
3. 针对jsp页面的post提交:
在你建的Web工程中要添加下面的一个类:CharacterEncodingFilter.java
package shop.test;
import javax.servlet.*;
import javax.servlet.FilterConfig;
import javax.servlet.FilterChain;
import java.io.IOException;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: SCAU</p>
*
* @author 李跃华
* @version 1.0
*/
public class CharacterEncodingFilter implements Filter{
public CharacterEncodingFilter() {
}
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
然后在你所建的Web工程中的web.xml文件中添加:
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>shop.test.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4. 大公告成
二、 MySql在JBuilder2006中 解决 中文乱码问题
1. 把MySql数据库默认字符编码设置为gb2312或者gbk
2. 在建立项目时设置字符编码为gb2312或者gbk
3. 在hibernate.cfg.xml中的设置如下:
<?xml version='1.0' encoding='gb2312'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="myeclipse.connection.profile">
com.mysql.jdbc.Driver
</property>
<property name="connection.url">
jdbc:mysql://localhost/bookshop?
useUnicode=true&characterEncoding=gb2312
<--注意加上这句>
</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<mapping resource="./shop/tables/Admin.hbm.xml" />
<mapping resource="./shop/tables/Book.hbm.xml" />
<mapping resource="./shop/tables/Bookcatalog.hbm.xml" />
</session-factory>
</hibernate-configuration>
- 中文乱码问题
- Webshpere 中文乱码问题。
- JPGraph中文乱码问题
- 中文乱码问题
- 中文乱码问题
- 解决中文乱码问题
- AJAX中文乱码问题
- JSF中文乱码问题
- JBuilder2005中文乱码问题
- jsp中文乱码问题
- AO中文乱码问题
- AO中文乱码问题
- 中文乱码问题总结
- Ajax中文乱码问题
- 解决中文乱码问题
- 中文乱码问题
- java中文乱码问题
- 解决中文乱码问题
- Sybase SQL Anywhere 和 UltraLite 相关文章
- 似乎回到了从前
- 系统安全防护知识:如何配置Linux的日志文件
- 八数码难题的实现
- JSP多文件上传-绝对好用
- 中文乱码问题
- 关于WebLogic 9.2与10.0中console异地IP登录不上的解决方法
- 利用Javascript进行注入
- 对使用原子弹轰炸日本最好的说明
- Enumerable#reject
- pe_xscan 新增加对一个较少见的启动项的扫描,DIY了INI文件读取部分
- [概念] Force Field Analysis
- NetBeans的又一个bug
- OpenFire的客户端Spark的中文汉化包