servlet解决乱码的问题

所有页面都存成UTF-8编码的,HTML,Servlet
1、带有提交Form的HTML页面,加上
     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
保证浏览器用UTF-8打开页面。
2、Form用Post方法提交
3、Servlet的doPost()中设置Request和Response的编码:
     req.setCharacterEncoding("UTF-8");
   resp.setContentType("text/html;charset=utf-8");

如果Form用Get方法提交,也正确得到Request中的值,需要先变成“ISO8859-1”的字节数组,再生成UTF-8的字符串。
     String newValue = new String(req.getParameter("name").getBytes("ISO8859-1"), "UTF-8");
     resp.setContentType("text/html;charset=utf-8");

4、还可以设置%tomcat%/conf/server.xml :
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>

5、可以通过文件过滤完成字符集自动转换

web.xml文件中的配置信息:

6、数据库连接出现乱码
    只要涉及中文的地方全部是乱码,解决办法:在数据库的数据库URL中加上
     useUnicode=true&characterEncoding=GBK 就OK了。

7、数据库的显示乱码
在mysql4.1.0中,varchar类型,text类型就会出现中文乱码,对于varchar类型把它设为binary属性就

可以解决中文问题,对于text类型就要用一个编码转换类来处理,实现如下:

把它编译成class,就可以调用Convert类的静态方法ISOtoGB()来转换编码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值