JSP页面中输入中文数字结合的字符串查询数据库时候报错
sql="select*fromwzjlbookwherecarNum="苏E11111"这句在数据库中的时候能正常使用,但是在JSP页面中显示不出,”苏”这个字识别不出...
sql="select * from wzjlbook where carNum="苏E11111"这句在数据库中的时候能正常使用,但是在JSP页面中显示不出,”苏”这个字识别不出。数据库用的Mysql字符集gb2312 -- GB2312 Simplified Chinese,JSP页面中 <%@ page contentType="text/html;charset=GB2312" %>也写了
还有String test = "苏E11111" ;
test = new String(test.getBytes("GBK"),"gb2312");
String sql="select * from wzjlbook where carNum='"+test+"'";用这种方法也无法查找
可是如果我把前面的苏字去掉的话,同时在数据库中也去掉苏字,能查询出结果的,希望大侠们能指点下
我对数据库修改改为11111就是把苏E去掉,然后在JSP搜索11111,能得到整行的内容显示,返回结果能显示中文,问题就是查询的时候带中文字符的话就报错,无法识别,是不是JSP页面上的问题?
我的问题不是一个JSP页面POST到另外一个页面出现乱码,我试过页面1POST给页面2,然后显示POST内容是正常的,我的问题是在JSP页面使用查询语句查询数据库的时候出错,发现字符无法识别,我用的是文本文档写的代码,然后改后缀名
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column
'?鼸12345' in 'where clause' 展开
还有String test = "苏E11111" ;
test = new String(test.getBytes("GBK"),"gb2312");
String sql="select * from wzjlbook where carNum='"+test+"'";用这种方法也无法查找
可是如果我把前面的苏字去掉的话,同时在数据库中也去掉苏字,能查询出结果的,希望大侠们能指点下
我对数据库修改改为11111就是把苏E去掉,然后在JSP搜索11111,能得到整行的内容显示,返回结果能显示中文,问题就是查询的时候带中文字符的话就报错,无法识别,是不是JSP页面上的问题?
我的问题不是一个JSP页面POST到另外一个页面出现乱码,我试过页面1POST给页面2,然后显示POST内容是正常的,我的问题是在JSP页面使用查询语句查询数据库的时候出错,发现字符无法识别,我用的是文本文档写的代码,然后改后缀名
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column
'?鼸12345' in 'where clause' 展开
7个回答
展开全部
首先确定你的数据库是支持中文的,同时数据库连接url是默认的编码ISO8859-1。
然后对test进行转码:test = new String(test.getBytes("GBK"),"ISO8859-1");GBK是当前页面编码方式。这样再查询,不会有错误的。
但是返回结果却是乱码,所以你得将结果转码。test = new String(test.getBytes("ISO8859-1"),"GBK");这个工作相当于上次转码的逆操作。
具体原理请查看链接:
http://blog.163.com/xiaohui_1123@126/blog/static/39805240201031495419966/
然后对test进行转码:test = new String(test.getBytes("GBK"),"ISO8859-1");GBK是当前页面编码方式。这样再查询,不会有错误的。
但是返回结果却是乱码,所以你得将结果转码。test = new String(test.getBytes("ISO8859-1"),"GBK");这个工作相当于上次转码的逆操作。
具体原理请查看链接:
http://blog.163.com/xiaohui_1123@126/blog/static/39805240201031495419966/
展开全部
href跳转:
在JSP页面的头文件,这里设为:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
页面加密:encodeURI(encodeURI(x))在HTML页面用JS加密
如:
<script type="text/javascript">
function addCT(){
window.location.href=encodeURI(encodeURI("SerchServlet?name="+document.getElementById("name").value));
}
</script>
假设你输入查寻的text控件的id为name;
解码:URLDecoder.decode(x,"utf-8")在从map里取出来时解密
String name = URLDecoder.decode(request.getParameter("name"),"utf-8");
如果是post或get提交则:
设页面编码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
servlet:
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
这个id就可以读汉字了,不会出现乱码。
注意引包。有问题HI叫我。
在JSP页面的头文件,这里设为:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
页面加密:encodeURI(encodeURI(x))在HTML页面用JS加密
如:
<script type="text/javascript">
function addCT(){
window.location.href=encodeURI(encodeURI("SerchServlet?name="+document.getElementById("name").value));
}
</script>
假设你输入查寻的text控件的id为name;
解码:URLDecoder.decode(x,"utf-8")在从map里取出来时解密
String name = URLDecoder.decode(request.getParameter("name"),"utf-8");
如果是post或get提交则:
设页面编码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
servlet:
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
这个id就可以读汉字了,不会出现乱码。
注意引包。有问题HI叫我。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
test = new String(test.getBytes("GBK"),"gb2312"); 这句是多余的吧,
你先在后台直接sql="select * from wzjlbook where carNum="苏E11111"看看能查到结果不,如果可以的话那就是jsp页面传过来的值编码方式需要转换了
你先在后台直接sql="select * from wzjlbook where carNum="苏E11111"看看能查到结果不,如果可以的话那就是jsp页面传过来的值编码方式需要转换了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<%@ page contentType="text/html;charset=GBK" %>
String test=request.getParameter("你设置的那个参数");
test=new String(test.getBytes("ISO-8859-1"),"GBK");
保你通过
String test=request.getParameter("你设置的那个参数");
test=new String(test.getBytes("ISO-8859-1"),"GBK");
保你通过
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以试一下在jsp页面上加上
request.setcharacterencoding("utf-8")
或
response.setcharacterencoding("utf-8")
这个字符集,你也可以写成gb2312的!!
request.setcharacterencoding("utf-8")
或
response.setcharacterencoding("utf-8")
这个字符集,你也可以写成gb2312的!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询