我的程序要读取txt文本中的中文字符,然后再以读入的中文字符作为查询条件的一部分,进mysql去查询。数据库用了charset=gbk,txt文本是用ANSI存的,请问应该怎么样才能顺利作到我的要求?我在程序里试过把读进来的txt文本转换成gb2312,再用pstm.setString和setBytes等方法,但是都不行!

解决方案 »

  1.   

    <%@page contentType="text/html;charset=gb2312"%>
    <%@page import="java.net.*"%>
    <%@page import="java.io.*"%>
    <%@page import="java.util.*"%>
    <%
    File f1 = new File("d:\\test\\t.txt");
    if(f1.exists())
    {
    try
    {
    FileReader fr = new FileReader(f1);
    BufferedReader br = new BufferedReader(fr);
    String str = br.readLine();
    out.println(str);
    while(true)
    {
    str = br.readLine();
    if(str==null)
    {
    break;
    }
    out.println(str);
    }
    }
    catch(IOException e)
    {
    System.out.println(e);
    }
    }
    %>
    我这里读出来没问题啊
      

  2.   

    如果只是读写是没问题,问题是读入的中文要作为prepareStatement的参数,到数据库中去查询,这个时候可能由于编码或别的什么原因,就算数据库的中文和参数中的中文是相同的,也没办法查询出结果!