[JSP]数据库中的字符是乱码,why? 换换字符集试试,如GBK (国家标准)UTF-8(unicode) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <%@ page contentType="html/text;charset=GBK" %> 1.首先你页面简体中文是否正常2.jsp页面间简体中文参数传递是否正常3.数据库查询插入是否正常前两项可在jsp页面设置1.<%@ page contentType="html/text;charset=GBK" %>2.在第二个jsp接参数前打入代码 request.setCharacterEncoding("GB2312")不过在tomcat5中好像无效你可以这样 :String ID = new String(request.getParameter("ID").getBytes("ISO-8859-1"),"GB2312");id为你要从上个页面接的参数。3.首先确保自己的os db以及页面设置的字符集是否一样,如果一样的话应该没什么问题据我估计搂住应在插入数据库前将插入的中文参数转一下。 先out.println一下看看写入数据库前是否正常 Jsp中文乱码小议 -------郭鹏Jsp是一个很热门的话题,但让大多数人都头痛的是JSP页面中的乱码问题,笔者身有体会;曾为了解决中文乱码问题郁闷了好几天,试了很多方法都不行。最后在JSP专业人士的帮助下,终于解决。之后笔者曾对此做了一些小的研究。 首先我们先了解一下问题的原因。一般情况在在每个JSP页的头部都有这样一条语句:<% page contentType="text/html; charset=gb2312" %>这条语句决定了此页面使用GB2312编码形式,而在数据库中一般用的是iso-8859-1字符集存储数据. 而Java程序在处理字符时默认采用统一的ISO-8859-1字符集(体现Java国际化思想),所以在添加数据时,默认的字符集编码是iso-8859-1,而页面采用的是GB2312,所以就出现乱码问题。为解决此问题应在存储的时候把GB2312换转成iso-8859-1。有此时候在读出时也会出现乱码,那么只需反过来就可以了,把iso-8859-1转换成GB2312。具体实例归纳了以下几点,也许会对大家有一些帮助。1、 在建立JSP页面时应该注意在jsp页面的头部加入一下代码<% page contentType="text/html; charset=gb2312" %>此方法是解决JSP页面显示时的乱码。2、 有时还需在HTML代码中的<head></head>中加入这句<meta http-equiv="Content-Type" content="text/html; charset=gb2312">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、 在表单定义时加上这个属性有时也可以解决表单提交过程中出现的乱码<form enctype="multipart/form-data"></form>6、 提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.setCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。 jsp中get接收的地址栏乱码 请问这是什么编码? spring mvc 注解 关于WEBWORK中标签库的问题,拜托了 jsp生成的下载文档在unix下文件名的中文问题 大学不是计算机专业,在一家公司做java开发,知识欠缺,迷茫 如何得到系统当天的星期几,急,用javaserip中Date的什么方法,给分 借微电大叔的宝地问个问题:如何通过Servlet解析报文? 在线等待:xp/win2k下tomcat+jdk应如何配置,以运行jsp? s2sh 框架 线程单例等问题 高手请进,请问如何把要选定信息的值传递到相应的文本框中! 用过滤器做登录校验的问题
2.jsp页面间简体中文参数传递是否正常
3.数据库查询插入是否正常前两项可在jsp页面设置
1.<%@ page contentType="html/text;charset=GBK" %>
2.在第二个jsp接参数前打入代码 request.setCharacterEncoding("GB2312")不过在tomcat5中好像无效你可以这样 :
String ID = new String(request.getParameter("ID").getBytes("ISO-8859-1"),"GB2312");
id为你要从上个页面接的参数。
3.首先确保自己的os db以及页面设置的字符集是否一样,如果一样的话应该没什么问题
据我估计搂住应在插入数据库前将插入的中文参数转一下。
-------郭鹏
Jsp是一个很热门的话题,但让大多数人都头痛的是JSP页面中的乱码问题,笔者身有体会;曾为了解决中文乱码问题郁闷了好几天,试了很多方法都不行。最后在JSP专业人士的帮助下,终于解决。之后笔者曾对此做了一些小的研究。
首先我们先了解一下问题的原因。一般情况在在每个JSP页的头部都有这样一条语句:
<% page contentType="text/html; charset=gb2312" %>这条语句决定了此页面使用GB2312编码形式,而在数据库中一般用的是iso-8859-1字符集存储数据. 而Java程序在处理字符时默认采用统一的ISO-8859-1字符集(体现Java国际化思想),所以在添加数据时,默认的字符集编码是iso-8859-1,而页面采用的是GB2312,所以就出现乱码问题。为解决此问题应在存储的时候把GB2312换转成iso-8859-1。有此时候在读出时也会出现乱码,那么只需反过来就可以了,把iso-8859-1转换成GB2312。
具体实例归纳了以下几点,也许会对大家有一些帮助。
1、 在建立JSP页面时应该注意在jsp页面的头部加入一下代码
<% page contentType="text/html; charset=gb2312" %>
此方法是解决JSP页面显示时的乱码。
2、 有时还需在HTML代码中的<head></head>中加入这句
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
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、 在表单定义时加上这个属性有时也可以解决表单提交过程中出现的乱码
<form enctype="multipart/form-data"></form>
6、 提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.setCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。