用JSP写了一个单表的项目,很简单,开发工具myeclipse tomcat mysql sqlyog
mysql里数据设置gbk,JSP页面也设置了gbk 表里数据类型是varchar
但是在数据库中存放的中文,无法在jsp页面上查询到,字母的都可以查询到。
提示错误是数据库中没有该记录。
在myeclipse里写测试类,可以查询到数据库中的中文数据,就是网页上输入中文,点击查询不能跳转到数据库中的记录,提示错误。

解决方案 »

  1.   

    估计是你没有写过滤器吧,也就是说http请求传过来的不是中文,是乱码。你在服务器端测试下看看是不是乱码?
      

  2.   

    很可能是mysql的jdbc连接串的问题,检查一下,需要加上characterEncoding=gbk
      

  3.   

    form表单提交方式是不是post,如果是get的话就要在action中转换了。
      

  4.   

    更改MySQL数据库编码:
    运行MySQL Server Instance Confituration Wizard程序,根据向导一直点击“next”,当到配置数据库编码这一步时,选择最后一个单选按钮(Manual Selected Default Character Set/Collation),在下拉框中选择utf-8,然后按向导完成配置即可。
      

  5.   

    这类问题通常有下面几点
    1.客户端页面通过submit以后到服务器端的编码是不是正确的接受到了。
      比如你的也面编码是utf-8,而在你服务器端处理的时候却用机器默认的编码在处理,这样肯定会乱码的。处理的时候也要用utf-8才可以,这里只是举个例子。
    2.从客户端接收到数据(正确的前提下),在向数据库递交的时候是不是和数据库的编码一致,如果一致就不会有问题,如果不一致的话,那么你最好把数据库所使用的编码方式改成你的程序同样的。当然个人认为统一使用UTF-8比较好了,这样可以输入不同的语言。