Linux发布项目乱码,乱码问题终于解决

乱码问题终于解决。

由于之前用了System.Data.SQLite在linux中出现dllnotfound错误。

网上搜索了一下,似乎在linux下不能使用该dll。

于是开始使用odbc,噩梦也因此开始。

乱码问题始终无法解决。

当中使用了多种方法,在我几乎要放弃的时候,

多亏了linuxdotnet及时的回复。

最后发现一切罪恶的根源都是odbc。

最大的收获,就是学会了解决乱码的办法。

对于web应用,不出现乱码的办法,就是数据库,网页,web.config

三者的编码要统一,比如全使用utf8编码。

详细的方法可以参照

http://www.linuxdot.net/bbsfile-1845

但在使用Mono.Data.Sqlite时,也不是一帆风顺。

主要是经常出现找不到sqlite3的dll,以及无法打开数据库或提示数据库已被加密的问题。

解决办法,如果你是在windows,则要将sqlite3.dll复制到网站的bin目录下

注意,是无法添加引用的,要直接复制。

在linux下,则要将sqlite-3.6.7.so复制到网站的bin目录下。

上面的dll和so都可以在www.slqite.org下载。

其实,我是一早知道mono可以直接连接sqlite,但一直没想到linux下还会有dll。以为都是so。

而我之前打算是在windows下开发的,所以以为无法引用so。

没想到linux安装mono后,在/usr/lib/mono/gac/Mono.Data.Sqlite/2.0.0.0__0738eb9f132ed756

和/gac/Mono.Data.SqliteClient/2.0.0.0__0738eb9f132ed756有相关的dll。

因此可以直接复制到bin目录下,用windows开发工具进行开发。

按照官方的说法,连接有两种方式,一种是Data Source方式,一种是URI方式。

我用Data Source方式始终连接不上,反而URI可以连的上。当中有些是看不太明白的

The format of the connection string is:

[1.1 profile and the old assembly]

URI=file:/path/to/file

[2.0 profile in the new assembly]

Data Source=file:/path/to/file

Data Source=|DataDirectory|filename

The latter case for the 2.0 profile references the App_Data directory (or any other directory that's configured to contain data files for an ASP.NET 2.0 application)

profile在这里不知何解,因为我就是用的1.1的连接方式。也就是URI的方式。而我引用的dll是2.0版本的。

最后,再次感谢linuxdotnet社区对我的帮助与支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值