db2服务器用的字符集是utf-8,客户端为windows XP中文版,
现在用jsp通过jdbc:odbc连接数据库,读取出来的中文字符串显示出来是乱码
页面前已加语句:<%@ page contentType="text/html; charset=GB2312" %>
另外在windows下通过clp连接那个数据库,select出来的中文字符也是显示乱码
请问这个问题怎么解决?应该怎么读取里面的中文字符?

解决方案 »

  1.   

    既然用utf-8,就全用utf-8,页面的charset=UTF-8,读取数据库的时候也要按utf-8读取。
      

  2.   

    对哦,我怎么没想到试试这个...
    不过页面编码改成这个后整个页面的中文都变成了小框框,而从数据库读出来的字符串还是原样的乱码(从数据库读取得语句如下:resultset.getString(1))
    请问“读取数据库的时候也要按utf-8读取。”这个怎么做到呢?
      

  3.   

    在浏览页面时点右键, 编码->点unicode 试试.
      

  4.   

    最后我的解决办法是:
    将数据库的所有comment语句抽取到一个单独的文件中,然后在windows系统下通过odbc连接数据库服务器,执行那个脚本文件,重新生成所有的comments。
    幸好暂时没看到数据表里面有中文数据,不然就不知道要怎么搞了...
      

  5.   

    这里面一共涉及到几个方面的转码问题,你必须一一确认才行。
    1.jsp页面编码(如果是utf-8格式且页面中有中文,必须将文件格式也设置为utf-8才行)
    2.servlet处理(或structs,ww2等的action)编码
    3.数据库编码这几个缺一不可,要一个一个确认,最简单的方法就是这几个部分都统一使用一种编码,避免相互混淆。如统一使用utf-8,包你在任何语言系统下显示都是正常的。
      

  6.   

    好像都没讲到点子上,我记得 DB2 的 URL 中需要将一个属性设置为 UTF-8。这是首先要检查的地方,如果数据库读取正确,其他的自然会水到渠成。
      

  7.   

    这里面一共涉及到几个方面的转码问题,你必须一一确认才行。
    1.jsp页面编码(如果是utf-8格式且页面中有中文,必须将文件格式也设置为utf-8才行)
    2.servlet处理(或structs,ww2等的action)编码
    3.数据库编码这几个缺一不可,要一个一个确认,最简单的方法就是这几个部分都统一使用一种编码,避免相互混淆。如统一使用utf-8,包你在任何语言系统下显示都是正常的。------------------------------------------这个方法是外面编程的常用方法,有实践经验的人才回可能这样说。