在开发一个java的管理系统时,中文问题常常困扰着我们,根据我的经验,无非为下面几种;
步骤1.oreacle 客户端环境变量的修改。
[ECP_WEB]/oracle$locale
LANG=zh_CN.gbk
LC_CTYPE="zh_CN.gbk"
LC_NUMERIC="zh_CN.gbk"
LC_TIME="zh_CN.gbk"
LC_COLLATE="zh_CN.gbk"
LC_MONETARY="zh_CN.gbk"
LC_MESSAGES="zh_CN.gbk"
LC_PAPER="zh_CN.gbk"
LC_NAME="zh_CN.gbk"
LC_ADDRESS="zh_CN.gbk"
LC_TELEPHONE="zh_CN.gbk"
LC_MEASUREMENT="zh_CN.gbk"
LC_IDENTIFICATION="zh_CN.gbk"
LC_ALL=
步骤2.用户环境变量的修改。
[ECP_WEB]/tmcat$locale
LANG=zh_CN.gbk
LC_CTYPE="zh_CN.gbk"
LC_NUMERIC="zh_CN.gbk"
LC_TIME="zh_CN.gbk"
LC_COLLATE="zh_CN.gbk"
LC_MONETARY="zh_CN.gbk"
LC_MESSAGES="zh_CN.gbk"
LC_PAPER="zh_CN.gbk"
LC_NAME="zh_CN.gbk"
LC_ADDRESS="zh_CN.gbk"
LC_TELEPHONE="zh_CN.gbk"
LC_MEASUREMENT="zh_CN.gbk"
LC_IDENTIFICATION="zh_CN.gbk"
LC_ALL=
步骤3.tomcat配置的字符集修改。
conf下配置文件 server.xml 中:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding='UTF-8'/>
<!-- A "Connector" using the shared thread pool-->
步骤4.系统架构代码里面的过滤器字符转换修改。
this.encodingName="GBK";
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (this.enable) {
request.setCharacterEncoding(this.encodingName);
}
chain.doFilter(request, response);
}
步骤4是根据每个系统的字符转换过滤器中的写法来定。仅供参考!
步骤5.系统里面的JSP页面编码格式统一转换为GBK
<%@ page language="java" contentType="text/html; charset=GBK"%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
</head>
步骤6。如果为struts2,则struts2.xml文件中字符集的配置
<constant name="struts.i18n.encoding" value="GBK"/>
本文提供了一套全面解决Java应用程序中文乱码问题的方法,包括调整Oracle客户端与Tomcat环境变量、配置Tomcat字符集、修改系统过滤器及统一JSP页面编码。
292

被折叠的 条评论
为什么被折叠?



