Fluent NHibernate+MySQL插入数据中文乱码问题
2012-03-08 21:11 Fred-Xu 阅读(1142) 评论(0) 编辑 收藏 举报一.环境准备:
1. 安装.NET FrameWork 4.0
2. 安装MySQL 5.0.x www.mysql.com
3. 安装Mysql connector for .Net1.0 www.mysql.com
二.问题描述:如题
三.问题分析:
Mysql从4.1以后开始支持多编码。用因为MySQL是瑞典人开发的,所以安装MySQL默然是latin1。而我们中文操作系统环境下用到的默认是GB2312.这样我们不管在查询数据库中文数据时,数据库转换字符时就会出现混乱。
四.问题解决:
通一数据库表和字段使用utf8字符集。具体方法:
1) 在创建数据表时,先执行如下语句:
set character_set_results=utf8;
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_server=utf8;
2) 然后再执行建表语句:例如
CREATE TABLE `table1` (
`Code` varchar(10) NOT NULL default '',
`Name` double default '-1',
PRIMARY KEY (`Code`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
这里字符集也设置为utf8
3) 修改数据库连接字符串,设置指定的字符集:
“server=yourIP;database=yourDB; User ID=yourID;Password=yourPwd; Charset=utf8”
第1,2步设置好后,如果没有在连接字符串里加上charset=utf8,插入数据还是会乱码。3步完成后,插入中文数据正确,没有乱码,Done!