读书人

小妹请教一个奇怪的Encoding有关问题

发布时间: 2012-01-20 18:53:53 作者: rapoo

小妹请问一个奇怪的Encoding问题!
我有一个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>里面的??????是几个中文字。
想问这是为什么!我怎么在程序里改,让它正确显示中文字!

请各位师哥代码明示!小妹在这里不胜感激!

[解决办法]
我也遇到过这种情况
我用的国外的服务器,不支持中文编码
不知道有什么办法
[解决办法]
string selectData=ds.GetXml();
//然后执行了什么操作?
Response.Write(selectData);//看看有没有乱码
[解决办法]

C# code
        System.Text.Encoding encoding = System.Text.Encoding("utf-8");             byte[] b = encoding.GetBytes(selectData);            string selectDatautf = encoding.GetString;            Response.Write(selectDatautf);
[解决办法]
上面代码少了参数
C# code
System.Text.Encoding encoding = System.Text.Encoding("utf-8");             byte[] b = encoding.GetBytes(selectData);            string selectDatautf = encoding.GetString(b);            Response.Write(selectDatautf);
[解决办法]
sql 字段类形是什么
varchar
or
nvarchar

[解决办法]
查一下xml文件是不是少了
<?xml version="1.0" encoding="GB2312" ?>
[解决办法]
你用ds.wiritexml 这个方法试试
让他自己写成一个xml文件看看是否乱码
[解决办法]
sqlite的默认编码为ISO-8859-1
在插入时进行utf-8/gb2312--->ISO-8859-1
在读入时进行ISO-8859-1--->utf-8/gb2312
试试,这样可不可行?

读书人网 >C#

热点推荐