vs2008 C# 使用 System.Data.SQLite.dll 字符编码问题
vs2008 C# 使用 System.Data.SQLite.dll,一切正常。
但是我数据库是以前用C++代码生成的,里面汉字编码格式是GB2312,现在用C# 使用 System.Data.SQLite.dll读取汉字会变成乱码,上网查了查资料,System.Data.SQLite.dll默认会按Utf8格式读取。
...
SQLiteDataReader dr;
...
dr.Read();
...
dr[2].ToString();//这句ToString将GB2312的按Utf8读了
...
因为解析的时候就错了,所以读出来的再用怎么用System.Text.Encoding都转不过来。
我现在想解决的办法一个是:
用SQLiteDataReader里面的
public override long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length);
但是我看了System.Data.SQLite源代码,需要数据字段类型是blob,而我原来数据库字符串类型定义的是varchar,原来数据库是不能动的。
另一个办法是修改System.Data.SQLite源码,让他按GB2312读取,但是我接触C#时间不长,能力达不到...
也不知道问题说清楚了没有...
请教诸位高手,怎么解决在C#下利用System.Data.SQLite.dll读取汉字编码格式是GB2312的数据库,数据库字符串类型定义的是varchar不是blob?
[解决办法]
[解决办法]
顶贴也是一种美德。。。
[解决办法]
csdn告诉我们,每天顶贴会加10分!
[解决办法]
我没有找到System.Data.SQLite.dll,不知道他的用法,你可以看看他的接口,看看有没有设置encoding的接口
[解决办法]
[解决办法]
转码
[解决办法]
暂时没使用2008
[解决办法]
只能 修改System.Data.SQLite源码,让他按GB2312读取
[解决办法]
最好还是统一使用utf-8,以后就不会再有编码转换的问题了
[解决办法]
不要乱改啊 按默认的了
[解决办法]
不要乱改啊 按默认的了
[解决办法]
哎,要是开源的问题就解决了
[解决办法]
没用过vs2008,顶
[解决办法]
没用过vs2008,顶
[解决办法]
没用过vs2008,顶
[解决办法]
楼主说的好啊!顶啊!
[解决办法]
- C# code
SQLiteDataReader dr;// ...dr.Read();// ...// dr[2].ToString();byte[] bs = dr[2];string s = System.Text.Encoding.GetEncoding("GB2312").GetString(bs);// 这里 s 就是你要的 GB2312 编码的字符串
[解决办法]
正想sqlite
[解决办法]
dr[2].ToString()的值以及实际应该的值分别是什么
[解决办法]
帮顶,顺便为加分
[解决办法]
up
[解决办法]
顶。。。。
[解决办法]
编码转换问题浪费我们太多时间。
[解决办法]
太好了1
[解决办法]
顶顶顶顶。。。。
[解决办法]
那数据库于EXCEL表格这么连啊
[解决办法]
mark
[解决办法]
对35楼的方法提个改进建议:
对于comm.CommandText可以不要在代码中写死,而是在资源文件中定义具体内容,因为不同的数据库的SQL是由区别的。当切换数据库时,切换使用的资源就可以了。
[解决办法]
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
[解决办法]
哎 为了积分 顶下了
[解决办法]
学习
[解决办法]
up
[解决办法]
回帖是一种美德!每天回帖即可获得 10 分可用分!
[解决办法]
我也没用过2008版的,也想来学下东西。
[解决办法]
用过2008,但没有用过类库SQLite,顶.............
[解决办法]
顶
[解决办法]
学习中。
[解决办法]
[解决办法]
sqlite是个好东西,不过用c#的地方有必要用sqlite么?
目前在嵌入式下用的sqlite
[解决办法]
ding
[解决办法]
ding
[解决办法]
顶,期待达人的解决方案
[解决办法]
飘过。。
[解决办法]
不晓得什么,没分了顶一下。。
[解决办法]
每天回帖即可获得 10 分可用分!我回了几天还积分还是1
[解决办法]
类似的问题我以前碰到过,看官方回答:
http://sqlite.phxsoftware.com/forums/t/1568.aspx
[解决办法]
没用过vs2008,顶
[解决办法]
学习
[解决办法]
我是来学习的,顺便顶一下。
[解决办法]
学习一下
[解决办法]
[解决办法]
Mark!
[解决办法]
.
[解决办法]
正在使用,感觉很强大哈哈
[解决办法]
这些都是好东西啊
[解决办法]
好东西,分享了,谢谢
[解决办法]
学习下
[解决办法]
顶
[解决办法]
不懂,学习下
[解决办法]
起,我也想知道怎改它的?
我一直用OLE ,速度不行。