WEB中文支持(编码问题解决)
2008-03-14 00:01
459 查看
1、保存数据库支持中文
更改数据库的配置文件,目前的主流数据库都支持中文,MYSQL除外,这就要求更改MYSQL的配置文件. 进入MYSQL的安装目录,打开数据库的配置文件,名字应该为 " 数据库名.ini "(my.ini),如果用的了mysql的连接包要使用mysql-connector-java-3.1以后的JAR包 。
[client]
port =3306
[mysql]
default-character-set=gb2312(gb2312就是要改的地方,记得是两处)
2、保证发布的WEB项目容器支持中文 ,目前的容器如 WebLogic ,JBoss都 没有这个问题,只有TOMCAT有这个问题。进入TOMCAT目录下的conf里面,打开 server.xml
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
reloadable="true"
URIEncoding="utf-8"
/>
这里的reloadable="true"表示动态部署URIEncoding="utf-8"表示进入就是中文
3、必须告诉前台页面收集器,页面为中文
<%@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8" %>
4、如果还有问题,增加过滤器
如:struts过滤器
1)过滤器类
package struts.commons;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.RequestProcessor;
public class MyFilter extends RequestProcessor{
//重写processPreprocess方法
protected boolean processPreprocess(HttpServletRequest arg0, HttpServletResponse arg1) {
try {
//具体转换内容
arg0.setCharacterEncoding( "gb2312" );
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return true ;
}
}
2)修改struts-config.xml
<? xml version = "1.0" encoding = "UTF-8" ?>
<! DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd" >
< struts-config >
< data-sources />
< form-beans />
< global-exceptions />
< global-forwards />
< action-mappings />
<!-- 过滤器必须加在message-resources上面 -->
<!-- 这里的processorClass写过滤器的类名 -->
< controller processorClass = "struts.commons.MyFilter" ></ controller >
< message-resources parameter = "struts.ApplicationResources" />
</ struts-config >
更改数据库的配置文件,目前的主流数据库都支持中文,MYSQL除外,这就要求更改MYSQL的配置文件. 进入MYSQL的安装目录,打开数据库的配置文件,名字应该为 " 数据库名.ini "(my.ini),如果用的了mysql的连接包要使用mysql-connector-java-3.1以后的JAR包 。
[client]
port =3306
[mysql]
default-character-set=gb2312(gb2312就是要改的地方,记得是两处)
2、保证发布的WEB项目容器支持中文 ,目前的容器如 WebLogic ,JBoss都 没有这个问题,只有TOMCAT有这个问题。进入TOMCAT目录下的conf里面,打开 server.xml
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
reloadable="true"
URIEncoding="utf-8"
/>
这里的reloadable="true"表示动态部署URIEncoding="utf-8"表示进入就是中文
3、必须告诉前台页面收集器,页面为中文
<%@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8" %>
4、如果还有问题,增加过滤器
如:struts过滤器
1)过滤器类
package struts.commons;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.RequestProcessor;
public class MyFilter extends RequestProcessor{
//重写processPreprocess方法
protected boolean processPreprocess(HttpServletRequest arg0, HttpServletResponse arg1) {
try {
//具体转换内容
arg0.setCharacterEncoding( "gb2312" );
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return true ;
}
}
2)修改struts-config.xml
<? xml version = "1.0" encoding = "UTF-8" ?>
<! DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd" >
< struts-config >
< data-sources />
< form-beans />
< global-exceptions />
< global-forwards />
< action-mappings />
<!-- 过滤器必须加在message-resources上面 -->
<!-- 这里的processorClass写过滤器的类名 -->
< controller processorClass = "struts.commons.MyFilter" ></ controller >
< message-resources parameter = "struts.ApplicationResources" />
</ struts-config >
相关文章推荐
- 使CentOS6.5中文本编辑器支持GB18030/GBK/GB2312 等类型的中文编码,解决中文显示乱码问题
- sublime text 2中添加gb18030编码的支持(解决安装gbk编码支持后部分中文文件依然乱码的问题)
- MySQL不支持中文、将编码修改为utf-8,仍不支持中文问题解决方案
- sublime text 2支持gbk编码-解决浏览器中文乱码的问题
- smarty截取中文字符乱码问题的解决支持utf-8编码
- 中文乱码问题 ? 原因:JSP中默认使用iso-8859-1字符编码方式,不支持中文 ? 常见的支持中文的编码方式:gb2312(常用简体汉字)、gbk(简体和繁体汉字)、utf-8 ? 解决中文乱码
- IE9以上中文编码解决问题
- 修改ORACLE客户端字符集编码解决中文乱码问题
- java web,charset编码设置正确情况下出现部分中文正常,部分中文乱码的问题
- java web,charset编码设置正确情况下出现部分中文正常,部分中文乱码的问题
- 解决中文乱码用spring经典编码过滤器 org.springframework.web.filter.CharacterEncodingFilter
- 解决json_encode不支持中文问题
- Web---演示servlet技术(servlet生命周期),解决中文乱码问题
- Linux下MySQL的修改字符集编码为UTF8(解决中文乱码问题)
- Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- iOS技巧——解决iOS中的中文unicode编码问题
- (转)MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结
- web.py项目中的html不支持中文导致报错的问题
- PHP字符串截取函数(解决中文乱码问题!支持UTF-8和GB2312)