小妹请问一个奇怪的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
试试,这样可不可行?