get方法传递参数时中文乱码的解决方法

使用get方法提交表单出现中文乱码的情况  

  提交表单的时候有post方法和get方法。

  使用get方法提交提交表单的时候,提交的数据作为查询字符串被附加到URL的末端发送到服务器,此时在服务器端调用setCharacterEncoding()方法就没有用了,我们需要得到请求参数值后,进行编码转换。

  解决的方法有两种

一种解决方法是

将你接收的参数转码,如原来接收的语句如下:

  String username = request.getParameter("username"); 

  现在再在后面加上一句username= new String(username.getBytes("ISO-8859-1"),"utf-8"); 

其中,username.getBytes("ISO-8859-1")是按照“ISO-8859-1”字符集编码将username字符串转化为byte数组,再通过new String()方法,使用指定的“UTF-8”字符集把byte数组构造成为一个新的String。

这种解决方法只适合于传递值比较少的情况下,而且每得到一个数据就需要进行转码操作。

一种解决方法是

在Tomcat中设置字符集

  在Tomcat安装目录下面找到servel.xml文件,找到其中的<Connector>元素,注意有多个<Connector>,需要找到和下面对应的一个
    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />

然后在其中添上一个 URIEncoding属性,将它的值设置为“UTF-8”,更改后的代码如下

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

使用超链接传递参数的时候出现中文乱码

使用超链接传递参数的时候会出现中文乱码的情况,这是因为使用超链接进行数据传递的时候,使用的是get方法提交请求,所以修改的方法和上面的方法一样,按照上面的方法修改即可。

原文:http://blog.csdn.net/tiange_xiao/article/details/51524895

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值