jsp插入数据库乱码 中文的参数怎么处理

a.jsp?name=张三插入数据库出现乱码... a.jsp?name=张三 插入数据库出现乱码 展开
 我来答
百度网友96ffcf7
推荐于2017-10-14 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118724
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
1、JSP页面乱码
这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可,
2、数据库乱码
这种乱码会使你插入数据库的中文变成乱码,或者读出显示时也是乱码,解决方法如下: 在数据库连接字符串中加入编码字符集 String
Url="jdbc:mysql://localhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=GB2312";
并在页面中使用如下代码:
response.setContentType("text/html;charset=gb2312"); request.setCharacterEncoding("gb2312");
3、中文作为参数传递乱码
当我们把一段中文字符作为参数传递个另一页面时,也会出现乱码情况,解决方法如下: 在参数传递时对参数编码,比如
RearshRes.jsp?keywords=" + java.net.URLEncoder.encode(keywords) 然后在接收参数页面使用如下语句接收
keywords=new String(request.getParameter("keywords").getBytes("8859_1"));
response.sendRedirect("?gh=0001&xm=" + java.net.URLEncoder.encode("忘忧草")); String s=new String(request.getParameter("xm").getBytes("ISO8859_1"),"gb2312"); out.println(s);
4、JSP页面乱码加这句?
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="err.jsp" %>
5、在form中用get方法传参乱码解决方法 如: 1、 login.jsp

<%@ page language="java" contentType="text/html;charset=GBK"%> <html> <head>
<title>get传参乱码问题</title> </head> <body>
<form name="form1" action="login_do.jsp" method="GET"> <input type="text" name="username"/><br>
<input type="password" name="password"/><input type="submit" value="提交"/> </form> </body> </html> ============ 2、login_do.jsp
<%@ page language="java" contentType="text/html;charset=GBK"%> <%
String temp=request.getParameter("username"); if(temp!=null){ temp=new String(temp.getBytes("8859_1"),"GBK"); }
out.println(temp); %>
bing_nuo
2013-11-03 · TA获得超过784个赞
知道小有建树答主
回答量:1040
采纳率:50%
帮助的人:756万
展开全部
get形式,参数中中文要编码,java.net.Encoder,插入数据库要java.net.Decoder还原数据
追问
我在插入数据库前把sql语句out.println,看了下,是正常的中文。因为我已经解码了,将%A%B这样的中文转成utf8,但不知道为什么插入数据库就成了%A%C%D这样的,我的数据库是mysql utf8编码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iamwangze123
推荐于2017-10-11 · 超过15用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:30万
展开全部
打印一下页面接受信息之后,插入数据库之前是不是已经乱码,插入数据库之前不是乱码的话,将数据库的编码格式改成你页面中的编码格式,否则,你页面中的编码格式改为UTF-8或者GBK
追问
我在插入数据库前把sql语句out.println,看了下,是正常的中文。因为我已经解码了,将%A%B这样的中文转成utf8,但不知道为什么插入数据库就成了%A%C%D这样的,我的数据库是mysql utf8编码。 页面中改成utf-8后,中文字符显示不正常了。
追答
就是说你以前写代码的时候数据库和页面的编码格式不一样,现在改成一样的了,就成乱码了,现在讲jsp页面中的乱码改成你需要的文字就行了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
finelife
2013-11-03 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:45.7万
展开全部
a.jsp?name=张三
这是一个向另一个页面发送请求,并传递参数,但参数你用的是中文,所以要进行格式转换,给你个参考http://blog.csdn.net/joywy/article/details/8006645
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乾莺韵75
2013-11-03 · TA获得超过905个赞
知道小有建树答主
回答量:546
采纳率:0%
帮助的人:244万
展开全部
使用UTF-8编码。
追问
我在插入数据库前把sql语句out.println,看了下,是正常的中文。因为我已经解码了,将%A%B这样的中文转成utf8,但不知道为什么插入数据库就成了%A%C%D这样的,我的数据库是mysql utf8编码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式