免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2361 | 回复: 2
打印 上一主题 下一主题

JSP/Sevlet + SQL 2k无法查询中文字段 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-10-19 23:43 |只看该作者 |倒序浏览
本帖最后由 user2003 于 2011-10-19 23:44 编辑

例如:

创建一个表:
create table t1 (name nchar(20), id int)
插入数据:
insert into t1 (name, id) values('张三‘,2)

执行成功后,可以用id查到本条记录(正确显示),但用name查询时,结果为空。


经Google,影响此问题的原因可能出现在以下任一环节,但如何排除和解决。
网页->JSP->JAVA(Servelet)->数据库 ...->Servelet->JSP->网页


////////////////=======================
当前还有一个现象,可能与此有关
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:if test="${sqlStatement == null}">
<c:set var="sqlStatement" value="select * from 用户" />
</c:if>

<h1>The SQL Gateway</h1>
<p>Enter an SQL statement and click the Execute button. Then, information about the <br>
statement will appear at the bottom of this page.</p>

<p>
<b>SQL statement:</b><br>
<form action="sqlGateway" method="post">
<textarea name="sqlStatement" cols="60" rows="8">${sqlStatement}
</textarea><br><br>
<input type="submit" value="Execute">
</form>
</p>
红色部分是定义一个变量的初始值,含中文。启动时可以正确显示。
当提交form后,应回显这个变量的值。但实际却显示乱码。

论坛徽章:
0
2 [报告]
发表于 2011-10-19 23:51 |只看该作者
加过滤器

论坛徽章:
0
3 [报告]
发表于 2011-10-21 12:38 |只看该作者
找到原因了,
在servelet doPost()中收到request,要把里面的内容进行编码转换成GB2312格式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP