servlet乱码解决的小秘密
来源:互联网 发布:上海财经大学考研知乎 编辑:程序博客网 时间:2024/06/05 07:20
最近在学习servlet,随着学习的深入,我们遇到了,有中文的时候就会产生中文乱码的情况,使我们苦恼不已,我相信的刚刚开始学习servlet,和我一样为之苦恼,不用怕,接下来我们就一起研究一下,乱码的原因吧。
工欲善其事必先利其器。我们知道现在,我们用的浏览器用的字符集编码为“gb2312”,“gb2312”是支持中文的,但是我们用的Tomcat,的编码为“ISO-8859-1”,此编码格式并不支持中文,也就是说,中文乱码产生的原因是,浏览器的字符集和Tomcat的字符集不一致导致的。
上面我们知道了乱码产生的原因了,现在我们着手解决一下吧。思考一下,既然是两种,字符集的不同导致了乱码,是不是我们可以从字符集着手呢?答案是肯定的!servlet乱码分为request乱码和response乱码,即请求乱码和相应乱码。在进一步,request乱码又可以根据提交的不同方式分为,post乱码和get乱码;response乱码也可以分为字节乱码,和字符乱码。
request的post乱码解决的方法,是在使用request之前用request.setcharacterencoding(“”UTF-8”),就可以解决了,自己的理解是将request的字符编码用UTF-8编码,”UTF-8”字符集是支持“gb2312”,从而可以解决乱码的情况;而get乱码的解决方式为:new String(request.getbytes(“ISO-8859-1“),UTF-8),这个方法的意思是,首先收ISO-8859-1的格式,将其解码,因为Tomcat会为其编码,所以先要将其按照Tomcat的编码格式,先进行解码,在按照我们提供的编码格式“UTF-8”,将字节数组转成字符串String 类行。
接下来,我们以为解决一下response的乱码。response将内容输入到浏览器,有两种方式,第一种是将内容以字符形式,将内容写到浏览器端,第二种方式是一字节的方式将其写到浏览器端,那么针对不同的方式,乱码的解决方式是不同的。先说字符的方式,我们前面已经说过了,浏览器的编码格式为“gb2312”,我们可以先“通知”浏览器用什么字符集进行解码,我们可以设置response.setheader(content-type;text/html;charset=UTF-8),通知浏览器按照这种方式进行解码,然后在设置,字符编码,response.setcharacterencoding(“UTF-8”);或者使用这个方法可以同时改变前面的内容:response.setcontenttype(“text/html;charset=UTF-8”)。现在说一下,字节输入产生乱码的解决方法,和上面的一样,我们可以先“通知”浏览器以什么样的方式解码,多以也是,现将浏览器的解码格式设置为:response.setheader(content-type;text/html;charset=UTF-8),然后将其输出是的字节变为UTF-8即可,两种编码集想对应就不会产生中文乱码了,即“XXXXX”.getbytes(“UTF-8”)。
上面就是自己对乱码产生的理解,以及解决乱码的方法了,希望对你有所帮助!!!
- servlet乱码解决的小秘密
- jsp/servlet 乱码解决小方法
- Servlet乱码问题的解决
- servlet解决乱码的问题
- 解决Servlet的乱码问题
- 解决Servlet的乱码问题
- JSP/Servlet中文乱码问题的解决
- servlet中中文乱码问题的解决
- servlet中解决乱码的心得
- 解决servlet的out输出中文乱码
- 解决servlet中中文乱码的方法
- Servlet中解决中文乱码的方法
- Servlet中解决中文乱码的方法
- Java servlet解决中文乱码的解决方案
- Servlet中解决中文乱码的方法
- JSP+Servlet的编码,解决中文乱码
- Servlet response中文乱码的解决
- 解决Servlet中,中文乱码的问题
- 字符串的排列(草稿)
- 使用 Apache httpd 搭建 HTTP/HTTPS (正向)代理服务器
- PLY文件格式
- CacheManager运行原理流程
- (二)、mysql之数据库的操作
- servlet乱码解决的小秘密
- 反思自我
- 字符串拆分成句子
- 121. Best Time to Buy and Sell Stock
- PHP变量
- win10下安装hibernate
- 内部排序—简单选择排序
- 欧拉定理 BZOJ 3884 上帝与集合的正确用法
- 通过将图片文件转换成Base64编码实现ajax提交图片