中文乱码 URLEncode之后,后台获取仍是乱码问题详解

在做项目时遇到一个问题,是对于含中文字符的参数进行get提交,如果不对这些参数进行处理的话,直接提交会有问题的,因为中文为非ASCII码,而get提交的话需要全部为ASCII码基本表中的字符,ASCII码基本表中一共就那128个(这些只是常用的,在键盘上看得见的字符,像字母,一些符号什么的,全部的一共有256个,当然其他的一般用不到)。所以想要传输中文(当然也包括日文)这种非ASCII码的,需要对其进行转换一下,转换为浏览器地址认识的ASCII码,所以在java中可以使用java.net包下的URLEncoder类,有个encode()方法进行编码(js中也可以),其中有两个参数,第一个为需要编码的带中文的(或者其他非ASCII码)参数,第二个参数需要指定编码的格式,一般都用utf-8,不同编码的格式编码之后的字符不一样,所以这里需要指定一下,解码的时候需要指定同样的格式解码,于是对于url后面的参数进行encode之后提交到后台,在java后台接收之后依然是乱码,使用request.setCharacterEncoding("utf-8"),同样没作用,后经查阅资料才知道,request的setCharacterEncoding方法只对post提交的方式起作用,而且要在所有的getParameter之前才可以,而对于get提交的方式进行解码的方法,在tomcat根目录下,有个conf文件夹,里面有server.xml中有个配置的地方,如

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值