当前位置: 技术问答>java相关
请问如何在serverlet中执行含有阿拉伯字符的sql语句?很急!
来源: 互联网 发布时间:2015-04-03
本文导语: 例如:insert into aaa values(N'阿拉伯文') 页面显示出来是正确的,可是执行以后数据库中插入的是?,我用的执行函数是executeQuery() | 我 也 有 同 样 的 疑 问 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...
例如:insert into aaa values(N'阿拉伯文')
页面显示出来是正确的,可是执行以后数据库中插入的是?,我用的执行函数是executeQuery()
页面显示出来是正确的,可是执行以后数据库中插入的是?,我用的执行函数是executeQuery()
|
我 也 有 同 样 的 疑 问 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
比如select aaa from bbb where aaa like '%阿拉伯文+日文+中文+意大利文%'
库中存放的是真实的各国文字不是乱码 上面的SQL语句可以在查询分析器里面正确的执行
可是在程序里就查询不到数据
实际情况是 :
这个SQL语句的多语种部分是SERVLET提交过来的
aaaaa=new String(request.getParameter("input").getBytes("8859_1"),"UTF-8");
String sqlstr="select aaa from bbb where aaa like N'%"+aaaaa+"%'";
out.println("sqlstr="+sqlstr);//在IE上显示这个SQL语句都没有问题
ResultSet rs=st.executeQuery(sqlstr);//但是执行就查不到记录
1 我可以把整个SQL语句打印到网页上 而且网页上显示的这个SQL语句里面就是多国的语言
没有乱码
2 把这句SQL语句从网页上COPY到SQLSERVER的查询分析器里面 可以得到正确的结果 而且数据
库里存放的数据都是原文 不是乱码 字段类型是“NVARCHAR”
3 我用JOptionPane.showMessageDialog 在程序里弹出MESSAGEBOX 都可以看到正确的SQL语句
4 如果检索点里不包含多国语言 程序运行结果就是对的 一旦检索点里面包含小语种就检索不
到结果
5 如果把语句换成 insert into aaa values (N'"+aaaaa+"')" 插入库中的全是问号
不知道哪为高手能帮我解决这个问题 谢谢!!!!!!!!!!
比如select aaa from bbb where aaa like '%阿拉伯文+日文+中文+意大利文%'
库中存放的是真实的各国文字不是乱码 上面的SQL语句可以在查询分析器里面正确的执行
可是在程序里就查询不到数据
实际情况是 :
这个SQL语句的多语种部分是SERVLET提交过来的
aaaaa=new String(request.getParameter("input").getBytes("8859_1"),"UTF-8");
String sqlstr="select aaa from bbb where aaa like N'%"+aaaaa+"%'";
out.println("sqlstr="+sqlstr);//在IE上显示这个SQL语句都没有问题
ResultSet rs=st.executeQuery(sqlstr);//但是执行就查不到记录
1 我可以把整个SQL语句打印到网页上 而且网页上显示的这个SQL语句里面就是多国的语言
没有乱码
2 把这句SQL语句从网页上COPY到SQLSERVER的查询分析器里面 可以得到正确的结果 而且数据
库里存放的数据都是原文 不是乱码 字段类型是“NVARCHAR”
3 我用JOptionPane.showMessageDialog 在程序里弹出MESSAGEBOX 都可以看到正确的SQL语句
4 如果检索点里不包含多国语言 程序运行结果就是对的 一旦检索点里面包含小语种就检索不
到结果
5 如果把语句换成 insert into aaa values (N'"+aaaaa+"')" 插入库中的全是问号
不知道哪为高手能帮我解决这个问题 谢谢!!!!!!!!!!
|
aaaaa=new String(request.getParameter("input").getBytes("8859_1"),"UTF-8");
String sqlstr="select aaa from bbb where aaa like N'%"+aaaaa+"%'";
out.println("sqlstr="+sqlstr);//在IE上显示这个SQL语句都没有问题
ResultSet rs=st.executeQuery(sqlstr);//但是执行就查不到记录
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
将划线的这一句也做一次转换试试看ISO-8859-1
String sqlstr="select aaa from bbb where aaa like N'%"+aaaaa+"%'";
out.println("sqlstr="+sqlstr);//在IE上显示这个SQL语句都没有问题
ResultSet rs=st.executeQuery(sqlstr);//但是执行就查不到记录
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
将划线的这一句也做一次转换试试看ISO-8859-1
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。