html post中文,html post乱码怎么办

html post乱码的解决办法:首先打开相应的代码文件;然后将post传递过来的ISO编码内容,改成UTF-8格式的内容即可。

a0943493bca2f90836dcb5c9ea7c4b5e.png

本文操作环境:Windows7系统、HTML5版,DELL G3电脑

HTML使用post方式提交中文内容出现乱码的错误解决方式

今天在做一个例子的时候,使用post方式提交表单,如果有中文的话,在另一个页面显示出来的时候,总是会出现乱码;

但是将提交方式改为get的时候,就不会出现这种错误。

详细错误见下面图片和代码。

HTML代码:1

2

3

4

5

测试Cookie的设置和获取

6

7

8

9 站点名:

10 站点URL:

11

12

13

14

Servlet代码,截取一部分:1 response.setContentType("text/html;charset=utf-8");

2

3 PrintWriter out=response.getWriter();

4

5 String title="设置Cookie实例";

6 String docType="\n";

7 out.println(docType+

8 "\n"+

9 "

"+title+""+

10 "

\n"+

11 "

"+title+"

\n"+

12 "

  • \n" +

13 "

站点名:"

14 + request.getParameter("name") + "\n

" +

15 "

站点 URL:"

16 + request.getParameter("url") + "\n

" +

17 "

\n" +

18 "");

出现的错误:

4e55ea2dfb906a507363d9db40520181.png

一开始我以为时代码块放置的位置不对,将上面代码放在了doPost里面试了一下,还是出现这种错误。

那么如何用post方式传递中文呢?

通过查找资料,

post方式提交

对于这种情况,response.setCharacterEncoding有影响,当没有对response.setCharacterEncoding设置的时候值为null,则默认采用iso-8859-1来进行重新编码(解码)。

浏览器根据自己页面的编码格式作为起始编码格式,把字符进行编码成byte进行传输,到了tomcat,tomcat不进行干涉其中的重新编码(解码)格式。如果response.getCharacterEncoding为null,那么默认采用iso-8859-1进行重新编码(解码)成字符,如果设置了,就按照设置的编码格式进行重新编码(解码)字符。

POST传过去的都是单字节数据.所以POST传来的数据编码都是ISO-8859-1的单字节数据.因此英文和数字不会有乱码...在这种情况下.过滤器和server.xml里的设置都是无效的.当然request.setCharacterEncoding()也是无效的因为setCharacterEncoding的原理跟过滤器一样;

对于上面问题正确的处理方式应该为:String nameStr=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");

将post传递过来的ISO编码内容,改成UTF-8格式的内容,然后再输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值