2 srygg srygg 于 2015.07.12 04:13 提问

servletRequest中文乱码问题

提交表单post提交方式如下

    用户名2:<input type="text" name="username2"><br/>

    <input type="submit" value="register">

</form>

Servlet doPost方法如下:
request.setCharacterEncoding("UTF-8");
String username2 = request.getParameter("username2");
System.out.println(username2);

为何显示的仍然是???
另外,如果我把提交方式改成GET,在doGet方法中,我这么做:
String username2 = request.getParameter("username2");
String name2 = new String(username2.getBytes("iso8859-1"), "utf-8");
System.out.println(name2);
为何仍然是???
求大神解答

8个回答

qq_27757269
qq_27757269   2015.07.12 07:29

Request.set....
Response.setC..你把response给掉了。。。

srygg
srygg 没明白。。。
2 年多之前 回复
yuke198907
yuke198907   2015.07.12 09:24

jsp页面的编码是什么呢

srygg
srygg 没用jsp,我就直接在html里面写了个表单,用的utf-8格式
2 年多之前 回复
lingfeiwen
lingfeiwen   2015.07.12 09:54

从前端传过来的字符串编码不是UTF-8的,doPost拿到乱码。
doGet获取的username2是不是乱码,如果是乱码,你再怎么转都是乱码。

srygg
srygg 都是乱码
2 年多之前 回复
Evankaka
Evankaka   Ds   Rxr 2015.07.12 11:06

最保险的方法,是写一个监听器,对每一次request和response都进行转码。可以自己写一个servlet或者
直接用springmvc里的

guwei4037
guwei4037   Ds   Rxr 2015.07.12 11:58

查看下jsp页面的编码是什么?如果是utf-8,则在后台servlet中设置编码,保持编码一致即可。

response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");

srygg
srygg 我这个是发送request,不是response,也需要吗?
2 年多之前 回复
u012216727
u012216727   Ds   Rxr 2015.07.12 12:58

最好设置一个全站的过滤器来处理编码

cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.07.12 22:17

request.setCharacterEncoding("UTF-8");

写上更保险啊,还有一种是在tomcat里,修改编码,应该是在server.xml 里有一个URLRecode,你百度然后改一下!在web.xml里也最好配置一下

srygg
srygg 这个我我知道,但尽量不修改配置文件。。
2 年多之前 回复
CSDNXIAON
CSDNXIAON   2015.07.17 02:40

解决SpringMVC中文乱码问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片