在mysql中插入中文时,在jsp页面上能正常显示;但是在jsp页面上插入中文时,显示结果为乱码?如何解决?

在mysql中插入中文时,在jsp页面上能正常显示;但是在jsp页面上插入中文时,显示结果为乱码?如何解决?,第1张

我也碰到跟你差不多的情况~~~下面是我之前找到的解释!!!看看对你有用不?

一般情况在在每个JSP页的头部都有这样一条语句:

<% page contentType= "text/htmlcharset=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/htmlcharset=gb2312 " %>

此方法是解决JSP页面显示时的乱码。

2、有时还需在HTML代码中的 <head></head>中加入这句

<meta http-equiv= "Content-Type " content= "text/htmlcharset=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

看能不能解决

1、JSP页面乱码

这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可,

<%@ page contentType="text/htmlcharset=utf-8" language="java" %>

2、数据库乱码

这种乱码会使你插入数据库的中文变成乱码,或者读出显示时也是乱码,解决方法如下:

在数据库连接字符串中加入编码字符集

String Url="jdbc:mysql://localhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=GB2312"

并在页面中使用如下代码:

response.setContentType("text/htmlcharset=gb2312")

request.setCharacterEncoding("gb2312")

3、中文作为参数传递乱码

当我们把一段中文字符作为参数传递个另一页面时,也会出现乱码情况,解决方法如下:

在参数传递时对参数编码,比如

RearshRes.jsp?keywords=" + java.net.URLEncoder.encode(keywords)

然后在接收参数页面使用如下语句接收

keywords=new String(request.getParameter("keywords").getBytes("8859_1"))

以上为现阶段遇到的乱码问题,乱码的核心问题还是字符集编码问题,只要掌握了这一点,一般的乱码问题都可以解决。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8348969.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存