c#操作MySQL数据库中文出现乱码(很多问号)的解决方法
前题:修改discuz论坛帖子老连接(从NT版转到PHP版的discuzX3),帖子里有很多引用,有链接都是.aspx这样的链接。
需要将这些链接改到当前论坛的链接。
思路:用asp.net程序获取含.aspx的帖子内容,用正则替换旧链接,本地测试OK?在服务器上就出现了一部分成功,一部分出现了很多问号
“???????????”;找了很久原因,知道是字符集的原因,对比了下本地和服务器上数据库的字符集,都是utf-8;没问题啊!怎么会出现问号呢?
在c#代码中把原帖子内容,和替换后的内容写入到文本文件。一对比,修改前和修改后都没有问号啊,怎么写入数据库就有呢?看了配置文件web.config中的数据库连接字符串,
发现没有指定字符集,原因就在这里了。于是在连接字符串中添加配置参数charset=utf8;再测试,OK可以了。