关于解决乱码问题
来源:互联网 发布:淘宝联盟登不了怎么办 编辑:程序博客网 时间:2024/06/05 16:51
常见字符编码:iso-8859-1(不支持中文)、gb2312、gbk、gb18030(系统默认编码,中国的国标码)、utf-8(万国码)
一、请求编码
对应两种请求方式的解决方法不同,因为其中get请求没有请求体。
***对于服务器,默认是使用iso-8859-1来解码
1、对于post请求。
它发送给服务器时,编码格式采用你的这个提交数据页面的编码,也就是页面中 。
利用request.setCharacterEncoding("utf-8");来设置请求体编码,此时服务器将会用utf-8解码,而客户端发送来的也是用utf-8编码的,所以呢,不会乱码了。
2、对于get请求(传递数据是直接地址栏里传参)
因为get请求没有请求体,所以不能通过request.setCharacterEncoding("utf-8");来设置编码。
由于服务器拿默认的iso-8859-1来解码,那么咱们就再利用iso-8859-1来给它解码:
byte[]name1=name.getBytes("iso-8859-1");得到一个字节数组,再利用utf-8来重新编码(使用utf-8编码是因为它支持中文)name=newString(name1,"utf-8");这样就OK了。
二、响应编码
**当使用response.getWriter()来向客户端发送字符数据时,如果在之前没有设置编码,那么默认使用iso,因为iso不支持中文,一定乱码。
**当使用response.getWriter()之前可以使用response.setCharaceterEncoding("utf-8")来设置响应体编码,但是虽然服务器用utf-8来编码发送给客户端,但是客户端并不知道你服务器是用撒编码的,浏览器默认拿gbk来解码。还是乱码
**所以,可以设置一个响应头来告诉客户端服务器拿什么编码:
response.setHeader("Content-Type","text/html;charset=utf-8");这样客户端就知道了该拿什么进行编码。
一、请求编码
对应两种请求方式的解决方法不同,因为其中get请求没有请求体。
***对于服务器,默认是使用iso-8859-1来解码
1、对于post请求。
它发送给服务器时,编码格式采用你的这个提交数据页面的编码,也就是页面中 。
利用request.setCharacterEncoding("utf-8");来设置请求体编码,此时服务器将会用utf-8解码,而客户端发送来的也是用utf-8编码的,所以呢,不会乱码了。
2、对于get请求(传递数据是直接地址栏里传参)
因为get请求没有请求体,所以不能通过request.setCharacterEncoding("utf-8");来设置编码。
由于服务器拿默认的iso-8859-1来解码,那么咱们就再利用iso-8859-1来给它解码:
byte[]name1=name.getBytes("iso-8859-1");得到一个字节数组,再利用utf-8来重新编码(使用utf-8编码是因为它支持中文)name=newString(name1,"utf-8");这样就OK了。
二、响应编码
**当使用response.getWriter()来向客户端发送字符数据时,如果在之前没有设置编码,那么默认使用iso,因为iso不支持中文,一定乱码。
**当使用response.getWriter()之前可以使用response.setCharaceterEncoding("utf-8")来设置响应体编码,但是虽然服务器用utf-8来编码发送给客户端,但是客户端并不知道你服务器是用撒编码的,浏览器默认拿gbk来解码。还是乱码
**所以,可以设置一个响应头来告诉客户端服务器拿什么编码:
response.setHeader("Content-Type","text/html;charset=utf-8");这样客户端就知道了该拿什么进行编码。
注意,设置此响应头的同时不只是告诉了客户端编码,它还自动执行了response.setCharaceterEncoding()来设置响应体编码,也就是此一个语句
干了两件事
0 0
- 关于解决乱码问题
- 关于解决Asp乱码问题
- 关于项目解决乱码问题
- 关于MySQL乱码问题的解决
- 关于jsp乱码问题的解决
- 关于解决中文乱码问题的总结
- 关于jsp乱码问题的解决
- ArcGIS_关于rest乱码问题的解决
- 关于jsp乱码问题的解决
- 关于JAVA乱码问题的一则解决
- 关于jsp乱码问题的解决。
- 关于mysql解决中文乱码问题
- 关于数据乱码问题的解决
- 关于mysql中文乱码问题的解决
- 关于PD4ML解决中文乱码的问题
- 关于中文乱码问题的解决
- 关于解决js页面中文乱码问题
- 关于解决URL中中文乱码问题
- HDU 1575 Tr A
- spark的RDD 安装spark如下
- JS 日历插件 实现农历、节气 可自定义加班和休假
- Scala
- 关于GCD信号量dispatch_semaphore_signal
- 关于解决乱码问题
- matlab与opencv对应
- Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
- 作为面试官的一点心得
- 开发代码-如何开发易于扩展和清晰的代码
- leveldb wal write ahead og
- HDU Problem - 4810 Wall Painting【组合数学】
- Android Studio动态调试smail源码
- 删除字符串中带有html的空格/<p>标签/等