>我查询数据库的时候,如果输入信息是英文则正确输出。如果输入信息中包
>含中文则一个数据都读不到(数据库中有包含中文的数据),楼主的用户数据如何输入的?http form?application?还是硬编码到程序中?

解决方案 »

  1.   

    是不是如果数据库字段存放的是中文,就没有输出?还是输出是乱码?
    如果是乱码,则证明读出字段数据还是成功的,只需转换一下即可:
    str=new String (str.getBytes("ISO-8859-1"),"gb2312");
    但如果什么没有读出来,则要仔细检查你的代码了,肯定某个环节处理出错了
      

  2.   

    我的理解是用于查询的变量内码为ISO-8859-1一般是没有问题的,所以查询前最好将其转码为ISO-8859-1,从request取得的用户提交的内容是不需要转码的,因其内码本就是ISO-8859-1。
    所以我觉得问题在你的content是从哪儿来的,
    1.是从表单提交而来得,则content应该是通过request取得的:content=request.getParamenter("参数名称")这种情况下是不需要转码的,直接用它查询就可以了。
    2.程序创建的:content = new String("程序创建的内容");则需要按下面方法转码:
    content2=new String(content.getBytes("GBK"),"ISO-8859-1");
    再将content2用于查询便可。