如何解决POST和GET方式的中文乱码问题

对于post请求:

一:确保表单所在的页面按照指定的字符集打开

★在HTML页面中使用meta标记可以确保浏览器按照指定的字符集进行解码页面,
并限定表单提交时的数据编码方式
:<meta http-equiv="content-type" content="text/html;charset=utf-8">
:在服务器端需要在调用getParameter()方法读取参数之前,告诉浏览器如
何解码,使用如下代码即可完成该设置:
:request.setCharacterEncoding("utf-8");
★注意该方法一定要要放在所有request.getParameter()方法之前。
★这种方式只针对POST请求有效。
二:也可以使用转码:String username = request.getParameter("username");

username = new String(username.getBytes("iso-8859-1"),"UTF-8");


对于get请求:

一:确保表单所在的页面按照指定的字符集打开
★在HTML页面中使用meta标记可以确保浏览器按照指定的字符集进行解码页面,
并限定表单提交时的数据编码方式
:<meta http-equiv="content-type" content="text/html;charset=utf-8">
:完成ISO-8859-1到UTF-8格式的转换
String username = request.getParameter("username");
username = new String(username.getBytes("iso-8859-1"),"UTF-8");
★由于GET方式提交的任何数据在服务器端一定会以ISO-8859-1的方式进行解码,
所以服务器端可以先按ISO-8859-1的方式获取字节数组,在将该数组转变成

UTF-8对应的字符串形式


注意:对于get请求而言
★可以在Tomcat服务器的配置文件进行修改,这样就不用每次都对参数进行进制
转换。在这里需要修改Tomcat的conf目录下的server.xml配置文件。修改方法

是在port="8080"后面添加URI编码设置URIEncoding="utf-8"即可。如图所示:



但是如果用了这种方式,如果再对参数进行new String转换就会出错
★这种方式也是只争对get请求方式有效,对于post还是得需要用
:request.setCharacterEncoding("utf-8");或者new String转换。
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值