szhswl
宋针还的个人空间

        中文乱码这个问题,在我们的开发过程中是个经常遇到的问题,而这一问题的答案和解决方案也遍布互联网的各个角落。随便搜一下中文乱码,可以找到符合条件的记录成千上万。然而由于使用框架的不同,各人的开发环境的不同,中文乱码的情况及原因也各不相同。
        情况:有可能是在数据库里显示中文而页面进行提交时就成了乱码,有可能页面能正常显示中文而数据库里却不能正常显示中文。总之情况有很多种,数据库里不能正常显示中文有可能就是数据库的问题,要么是建表时没选择好编码要么是启动参数等问题,而更常见的是在页面提交的中文,在服务端就成乱码的情况(本人昨天也遇到这情况),网上的很多解决方案,
        首先配置web.xml的filter是必须的,而配置完毕后还是有中文问题的话,有的人说问题出在filter,用spring自带的filter不行,自己写了一个filter后解决;(本人是自己写的filter);有人说tomcat4.x没有这个问题,5.x就有编码问题。在Tomcat的server.xml的Connector部分添加URIEncoding="GBK",server.xml添加后内容如下:

<Connector URIEncoding="GBK" port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
本人也试过,没用,最后查找资料查到下面三条语句的含义:

1、<%@ page language="java" pageEncoding="gbk"%>
2、<%@ page contentType="text/html;charset=gbk"%>
3、<meta http-equiv="Content-Type" content="text/html; charset=gbk">

第一句编码格式为jsp文件的存储格式。
第二句web服务器在发送相应内容是使用解码 格式。
第三句是告诉浏览器需要使用UTF-8的编码来处理web服务器的相应内容。

虽然这三条语句可能对于解决没有直接的作用,但是这个是乱码产生原因的基础所在。只要认真理解上面三条语句的含义,在页面中统一编码中文问题就有答案了。



---------------------------------------------------------------------------------------------------------------------------------
说人之短,乃护己之短。夸己之长,乃忌人之长。皆由存心不厚,识量太狭耳。能去此弊,可以进德,可以远怨。
http://www.blogjava.net/szhswl
------------------------------------------------------------------------------------------------------ ----------------- ---------
posted on 2007-12-18 09:54 宋针还 阅读(2524) 评论(0)  编辑  收藏 所属分类: 常见问题

只有注册用户登录后才能发表评论。


网站导航: