论坛首页 编程语言技术论坛

c# +MySQLDriver.dll 乱码问题

浏览 7170 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-06-15  
我现在用C#.NET + MYSQL开发项目,我们用的是日文.数据库字体设置为'utf8';
现在数据库上能正确地显示日文字,但是C#环境下对MySQL数据的访问,从数据库里读出的数据中如果有日文就显示乱码.试过在数据库中执行'SET NAMES UTF8',显示的还是乱码,该怎样解决.
是数据库设置问题呢还是因为MySQLDriver.dll 的问题.
   发表时间:2007-06-15  
据估计还是你的mysql没有完全使用utf-8编码的原因,在status命令下,
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
这几项都应该是utf8的编码,这样你程序中统一使用utf8应该是没有问题的
0 请登录后投票
   发表时间:2007-06-15  
我在my.ini中设default-character-set=utf8
也执行了"SET NAMES UTF8"
通过SHOW VARIABLES LIKE '%CHARACTER%' 看到所有的CHARACTER都设为'UTF8'了,显示还是乱码.
0 请登录后投票
   发表时间:2007-06-15  
一下是我的my.cnf的部分内容:

--------------------------
[client]
#password       = your_password
port            = 3306
socket          = /tmp/mysql.sock
default-character-set=utf8


...skipping one line

# The MySQL server
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
character-set-server=utf8
collation-server=utf8_general_ci
default-character-set=utf8
init-connect='SET NAMES UTF8'

---------------------------
那几项utf8的地方你和你的my.cnf文件核对一下
如果,你的mysql编码没有任何问题的话,那问题肯定就是在你程序的其他地方了,比如页面、程序里写、读都应该是一直的编码。

---------------------------
上面是我处理的一些办法,可能还有我没有考虑到的地方,仅供你参考

0 请登录后投票
   发表时间:2007-06-18  
我安装的是mysql-4.1.20-win32版本,没有四楼说的my.cnf文件.
0 请登录后投票
   发表时间:2007-06-21  
知道是因为什么了.是MySQLDriver.dll 的问题.它好象不认'UTF8',我根据网上一些朋友的建议修改了connetionstring,追加了charset,也没有用.后来下载了MySql.Data.dll,不用MySQLDriver.dll,终于把乱码问题给搞定了.
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics