在mysql中插入中文时,在jsp页面上能正常显示;但是在jsp页面上插入中文时,显示结果为乱码?如何解决?
3个回答
展开全部
我也碰到跟你差不多的情况~~~下面是我之前找到的解释!!!看看对你有用不?
一般情况在在每个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中默认的是REQUEST来取参数,GET,POST方式存储很不一样。你可以试下用默认,GET,POST
看能不能解决
一般情况在在每个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中默认的是REQUEST来取参数,GET,POST方式存储很不一样。你可以试下用默认,GET,POST
看能不能解决
展开全部
从你提供的情况看,你的数据库设置应该是没有问题的,之所以出现乱码,是因为你在jsp页面上没有处理好字符。看来你是初学jsp,建议你看一下张冰老师的相关视频,你可以从www.verycd.com上下载的到!你的问题很好解决,如果是在a.jsp页面上进行post提交,b.jsp页面来处理,你在b.jsp页面开头加上如下代码:<% request.setCharacterEncoding(UTF-8);%>,当然你是设置utf-8还是GBK要跟你的数据库编码统一起来!试试吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那肯定是前台传到程序的时候 或者程序存数据库的时候出问题了 具体情况具体解决 建议都设置一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询