怎么解决JSP中出现乱码的问题
首先我们先了解一下问题的原因。一般情况在在每个JSP页的头部都有这样一条语句:
这条语句决定了此页面使用GB2312编码形式,而在数据库中一般用的是iso-8859-1字符集存储数据. 而Java程序在处理字符时默认采用统一的ISO-8859-1字符集(体现Java国际化思想),所以在添加数据时,默认的字符集编码是iso-8859-1,而页面采用的是GB2312,所以就出现乱码问题。为解决此问题应在存储的时候把GB2312换转成iso-8859-1。有此时候在读出时也会出现乱码,那么只需反过来就可以了,把iso-8859-1转换成GB2312。
具体实例归纳了以下几点,也许会对大家有一些帮助。
1、在建立JSP页面时应该注意在jsp页面的头部加入一下代码
此方法是解决JSP页面显示时的乱码。
2、有时还需在HTML代码中的中加入这句
3、在bean中用的是iso-8859-1编码,在jsp中一般用GB2312编码,处理此类乱码问题如下
String str=new String(strName.getBytes(“iso-8859-1”),”GB2312”);
具体用到此方法的地方为,当提交表单到bean(bean的功能是存储数据到数据库)表单提交后,数据库中存入的数据确变成了????,因此在调用bean之前应对编码进行转换,方法:String str=new String(request.getParameter().getBytes(“iso-8859-1”),”GB2312”);
这样,存入数据库的数据库的数据就可见了。
4、对于页面间的参数传递也可以用这个方法来处理乱码问题:
public String getStr(String str) { try { String temp_p=str; byte[] temp_t=temp_p.getBytes(“ISO8859-1″); String temp=new String(temp_t); return temp; } catch(Exception e) {} return “null”; }
5、在表单定义时加上这个属性有时也可以解决表单提交过程中出现的乱码
6、提交英文字符能正确显示,如果提交中文时就会出现乱码。
原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.setCharacterEncoding(“gb2312″)对请求进行统一编码,就实现了中文的正常显示。
最新文章
- ★Kali信息收集~3.子域名系列
- #iOS问题记录#动态Html加载本地CSS和JS文件
- SQL Server 显示执行一条语句的执行时间
- wpf comboBox取值问题
- kendoUI grid 过滤时出错:TypeError toLowerCase is not a function
- JSON代码小计
- 从混战到三足鼎立,外卖O2O下一个谁先出局?
- transform: translateY(-50%) 实现元素垂直居中效果
- Tasks on 2013
- 将某个组中的账户移动到新的OU下
- C# 如何创建接口以及使用接口的简单Demo(转载!)
- Django中Form的基本使用
- MfgTool (i.MX53)使用
- Open Source BI Platform List
- Git命令解释
- jquery 全选、反选、获取值、背景行、隔行变色和鼠标略过变色变色全特效
- amd,cmd规范
- Servlet3.0 multipart 文件上传技术
- 如何判断int类型相等
- What are rules about using an underscore in a c identifier