造成这个问题的原因是因为我们安装mysql服务的时候没有指定好编码,而采用默认的编码。不过也没关系,不用卸载重装。有一个解决办法,就是显式地指定编码格式,就OK啦。
配置文件的连接数据库字符串中加入:
Character Set=utf8;
我的连接字符串:
<add name="excellentmcoinEntities"
connectionString="metadata=res://*/McoinDBModel.csdl|res://*/McoinDBModel.ssdl|res://*/McoinDBModel.msl;
provider=MySql.Data.MySqlClient;
provider connection string="server=192.168.xx.xx;userid=root;password=123456;
Character Set=utf8;database=mydatabase""
providerName="System.Data.EntityClient" />
注意位置,要放在 connection string 中的两个"
字符之间,这是一个转义符代表双引号。加上之后,就可以解决了。
此外,也需要确定你的数据库编码也为utf-8的格式。可以使用Navicat查看;也可以使用cmd命令查看。
(1)Navicat中查看
(2)cmd命令查看
show variables like 'character_set_database'; //查看数据库的编码
show variables like 'character_set_%'; //查看所有的编码格式
怪不得有问题呢,好多编码都是latin1,就是自己安装mysql的时候没有指定编码。。。
命令大全:
查看mysql数据库及表编码格式
mysql乱码问题解决