servlet (5) 乱码问题
来源:互联网 发布:淘宝卖家违规 编辑:程序博客网 时间:2024/06/08 15:28
一:传递过程中的乱码
1,原因
在浏览器向WEB服务器发送中文的时候,浏览器是不能直接发送中文的,浏览器先将中文经过ISO8859-1的字符编码方
式进行预先编码,在网络传输中传送的是编码后的数据,到tomcat服务器之后,tomcat服务器不知道传送过来的是中文,
所以不能正常显示
2,解决方法:
1)在java程序中再使用ISO8859-1的字符编码方式进行解码,再采用一种支持中文的字符编码方式对其重新编码
byte[] bs =sname.getBytes("ISO8859-1"); 然后重新编码:sname = new String(bs,"GB18030");
这种解决方法是通用的,缺点是:开发效率太低,如果浏览器客户端提交的数据多,开发效率会很低。
2)从request对象中获取数据前,设置字符编码方式。
request.setCharacterEncoding("GB18030");
但是这个代码只对HTTP协议中请求协议中的请求体中的文字进行编码,也就是只能解决post请求中出现的乱码问题,
get请求不能使用这种方式解决。
3)将tomcat服务器中的CATALINA_HOME/conf/server.xml文件中的connector变迁中添加代码解决get请求中的乱码,
- <span style="font-size:18px;"> Connector port="8080"protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443"
- URIEncoding="GB18030"/></span>
二:数据展示过程中出现乱码
1,原因
使用servlet的PrintWriter输出中文到浏览器上出现乱码
2,解决方法
在方法中添加: response.setContentType("text/html;charset=GB18030");
3,注意问题
text/html表示响应的内容类型,不能随便写,响应的如果是普通文本或者HTML代码的话必须是text/html,写错了会出现
文件下载提示。
三:数据的保存过程中出现乱码
1,原因
在保存之前就已经是乱码了,保存到数据库的时候就一定是乱码。
2,解决
Oracle数据库在安装的时候会提示我们选择支持语言,我们选择的是中文,因此Oracle安装后是支持中文的。所以保存的
时候只要保存之前的数据不是乱码,保存之后的数据就不会是乱码。但是在MYSQL数据库中,在安装的时候大家需要手动
的设置MYSQL数据库的字符编码方式,如果不设置字符编码方式的话,则插入中文的时候会出现乱码。
- servlet (5) 乱码问题
- servlet (5) 乱码问题
- Servlet 乱码问题
- servlet乱码问题
- servlet 中文乱码问题:
- servlet乱码问题!
- 解决 Servlet 乱码问题
- servlet乱码问题
- servlet中文乱码问题
- Servlet 乱码问题
- servlet中文乱码问题
- Servlet 乱码问题
- servlet中文乱码问题
- servlet中文乱码问题
- Servlet中文乱码问题
- servlet中的乱码问题
- Servlet字符集乱码问题
- Servlet 中文乱码问题
- CorePlot1.0:安装
- ACM学习-动态规划-复制书稿问题
- Attempt to read from field 'int android.view.View.mViewFlags' on a null object reference
- LightOJ 1336 Sigma Function
- MongoDB(3.0.6)查询性能分析
- servlet (5) 乱码问题
- 51nod 编辑距离 (DP)
- python跳出双层for循环
- CorePlot1.0:折线图
- 在ESXI的虚拟机里,搭建Android开发环境和模拟器,一波三折
- leetcode27
- Struts2 请求参数接收
- CorePlot1.0:柱状图
- C ++ 输入输出流