step1: 在html文件中,添加 <meta >首先,页面的编码要和你servlet里面设置的编码一致
其次,servlet里面设置好两句话就可以解决乱码问题
requestsetCharacterEncoding("gb2312");
responsesetContentType("text/html;charset=tb2312");
这两句话的顺序不可以掉乱,加上就可以了再加上:reqsetCharacterEncoding("UTF-8");再在你的安装目录下E:\Program Files\Apache Software Foundation\Tomcat 60\conf的目录下有个serverxml,用记事本打开,在端口为 8080
<Connector port="8080" protocol=">今天在测试从web端存入数据到数据库,结果存入数据库的中文数据出现乱码。当然读取出来的时候也是乱码乱码的原因是tomcat的内部编码格式iso8859-1导致。 而在每个jsp页面设置的utf-8仅仅是该页面显示是用utf-8,而你用form表单提交的数据仍然是iso8859-1所以要在接受form表单数据的servlet页面加上一行代码requestsetCharacterEncoding("utf-8")
为了避免每页都要写requestsetCharacterEncoding("UTF-8"),建议使用过滤器对所有jsp进行编码处理。这个网上有很多例子。请大家自己查阅。
下面是我找的一些资料和一些总结:>先要知道为什么乱码,才能解决
一般都是后台返回数据和前台接收数据不一致造成
想法控制这一点就成了
(1)new String(strgetBytes(),"gbk");进行转码
(2)定义filter进行过滤
(3)在jsp中content限制为gbk、或者其他编码方式
(4)在tomcat 的servlet的Content配置中增加URIEncoding=‘gbk’在jsp和servlet的开发中,今天自己做的一个小例子中出现了中文乱码问题,用了许多方法,发现还是解决不了。最后我用了过滤器,才算终结。
此方法总结如下:在jsp页面中使用%@
page
pageEncoding=GB2312%
,这里的pageEncoding是GB2312,那么我们在过滤器webxml中所使用的param-valueGB2312/param-value也为GB2312。总之一条:就是上述两者一致即可,比如同为UTF-8
我将过滤器的java代码和webxml的配置写
//--------------java代码部分:CharsetFilter
java
package
com;
import
javaioIOException;
import
javaxservletFilter;
import
javaxservletFilterChain;
import
javaxservletFilterConfig;
import
javaxservletServletException;
import
javaxservletServletRequest;
import
javaxservletServletResponse;
public
class
CharsetFilter
implements
Filter
{
private
String
charset
=
GB2312;
public
void
destroy()
{
}
public
void
doFilter(ServletRequest
request,
ServletResponse
response,
FilterChain
arg2)
throws
IOException,
ServletException
{
requestsetCharacterEncoding(charset);
arg2doFilter(request,
response);
}
//--------------webxml部分(以下部分可以直接复制粘贴到WEBXML下)
filter
filter-nameCharsetFilter/filter-name
filter-classcomCharsetFilter/filter-class
init-param
param-namecharset/param-name
param-valueGB2312/param-value
/init-param
/filter
filter-mapping
filter-nameCharsetFilter/filter-name
url-pattern//url-pattern
/filter-mapping
来源:>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)