本文摘自PHP中文网,作者藏色散人,侵删。
html post乱码的解决办法:首先打开相应的代码文件;然后将post传递过来的ISO编码内容,改成UTF-8格式的内容即可。
本文操作环境:Windows7系统、HTML5版,DELL G3电脑
HTML使用post方式提交中文内容出现乱码的错误解决方式
今天在做一个例子的时候,使用post方式提交表单,如果有中文的话,在另一个页面显示出来的时候,总是会出现乱码;
但是将提交方式改为get的时候,就不会出现这种错误。
详细错误见下面图片和代码。
HTML代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Servlet代码,截取一部分:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
出现的错误:
一开始我以为时代码块放置的位置不对,将上面代码放在了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的原理跟过滤器一样;
对于上面问题正确的处理方式应该为:
1 |
|
将post传递过来的ISO编码内容,改成UTF-8格式的内容,然后再输出。
推荐学习:《HTML视频教程》
以上就是html post乱码怎么办的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《Html》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者