我有一个SQLite的数据库!
我读取数据库表里的某一字段的值,我在SQLite写SQL语句
读出来的结果是正确的,是中文。
但是到了C#里,读取出来的就是乱码!并且我不知道这个乱码是什么编码!SQLiteConnection sqlite_conn;
sqlite_conn = new SQLiteConnection("Data Source=SQLiteDB.db");sqlite_conn.Open();
try
{
     SQLiteDataAdapter sda = new SQLiteDataAdapter("SELECT XLMC FROM line", sqlite_conn);
     DataSet ds = new DataSet("ds");
     sda.Fill(ds);     //就在这步出错!读出来的内容是乱码!
     string selectData=ds.GetXml();
    //读出来的乱码内容如下
    //<ds>
      //<Table>
        //  <XLMC>������</XLMC>
      //</Table>
    //</ds>
}
catch (System.Data.SQLite.SQLiteException e)
{
      throw new Exception(e.Message);
}就那个<XLMC>������</XLMC>里面的������是几个中文字。
想问这是为什么!我怎么在程序里改,让它正确显示中文字!请各位师哥代码明示!小妹在这里不胜感激!

解决方案 »

  1.   

    string selectData=ds.GetXml(); 
    //然后执行了什么操作?
    Response.Write(selectData);//看看有没有乱码
      

  2.   

    To:JGood 
       
      有乱码啊!打印出来的就是������ 这个啊!
      

  3.   

    TO:chy28     数据库驱动问题!数据库驱动会有什么问题!
      

  4.   

    System.Text.Encoding encoding = System.Text.Encoding("utf-8");
     byte[] b = encoding.GetBytes(selectData);
    string selectDatautf = encoding.GetString;
    Response.Write(selectDatautf);
    如果utf8 不行试试gb2312 或者其他编码试试
      

  5.   

    所有的地方用UTF-8设置,保存文件高级选项用UTF-8,看他NND还乱不乱~
      

  6.   

    上面代码少了参数
    System.Text.Encoding encoding = System.Text.Encoding("utf-8");
                 byte[] b = encoding.GetBytes(selectData);
                string selectDatautf = encoding.GetString(b);
                Response.Write(selectDatautf);
      

  7.   

    sql 字段类形是什么
    varchar
    or
    nvarchar
      

  8.   

    TO:hdt 
        是varchar类型
      

  9.   

    查一下xml文件是不是少了
    <?xml version="1.0" encoding="GB2312" ?>
      

  10.   

    TO:juedaihuaihuai不是那里的问题!如果换成stirng aaa = ds.Tables[0].Rows[0][0].ToString();同样是乱码!
      

  11.   

    TO:ahone   你的方法我是实验过了!还是不行!我任何编码都试过了!
      

  12.   

    你用ds.wiritexml 这个方法试试 
    让他自己写成一个xml文件看看是否乱码
      

  13.   

    TO:hdt
        改了!改成nvarchar也是错误!
      

  14.   

    sqlite的默认编码为ISO-8859-1
    在插入时进行utf-8/gb2312--->ISO-8859-1
    在读入时进行ISO-8859-1--->utf-8/gb2312
    试试,这样可不可行?