问题场景:使用Entity Framework 6.0 操作Mysql数据库,中文保存至数据库后全部变成问号。但是使用Mysql API却不会。

原因排查:首先想到的肯定是数据库编码问题,一次查询了表、字段的编码,发现都是UTF8,这就说明表及字段的编码没有问题。第二步,查看数据库的编码:

show VARIABLES like 'char%';

结果:

果然如我们所料,数据库的编码是默认的latin1编码,而不是utf-8。

解决方案:1、首先想到的可能是修改数据库的编码,具体的修改方法参考博文:http://www.cnblogs.com/houqi/p/5713176.html 。

2、因为前文我们提到过,使用Mysql API可以正常插入中文,为什么会这样呢?我去检查了一下Mysql的数据库连接字符串:

<add key="ConnectionString" value="server=127.0.0.1;Uid=root;Pwd=******;Database=shove_scs;port=3306;charset=utf8;Allow User Variables=True"/>

我们可以发现,里面的charset=utf8就是指定了操作数据库所使用的编码。由此我们想到,我们是不是可以在EF的链接字符串中同样的添加编码呢。试试:

<add name="Entities" connectionString="metadata=res://*/EdmxModel.SnapsModel.csdl|res://*/EdmxModel.SnapsModel.ssdl|res://*/EdmxModel.SnapsModel.msl;
provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;user id=root;password=******;persistsecurityinfo=True;Character Set=utf8;
database=shove_scs&quot;" providerName="System.Data.EntityClient"/>

测试发现确实有效。这就说明添加编码确实可以解决乱码问题。

解决方案2参考文章:http://blog.sina.com.cn/s/blog_4c8b1bdd0102vpal.html

使用EF操作Mysql数据库中文变问号的解决方案的更多相关文章

  1. MySQL数据库中文变问号

    原文参考:http://www.linuxidc.com/Linux/2017-05/144068.htm 系统是的Ubuntu  16,修改以下配置 1.sudo vi /etc/mysql/my. ...

  2. c#操作MySQL数据库中文出现乱码(很多问号)的解决方法

    前题:修改discuz论坛帖子老连接(从NT版转到PHP版的discuzX3),帖子里有很多引用,有链接都是.aspx这样的链接. 需要将这些链接改到当前论坛的链接. 思路:用asp.net程序获取含 ...

  3. DOS命令行操作MySQL数据库中文乱码问题解决

    我们在 dos 命令行操作中文时,会报错 ’); ERROR (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 原因:因为 ...

  4. ASP.NET Core使用EF Core操作MySql数据库

    ASP.NET Core操作MySql数据库, 这样整套环境都可以布署在Linux上 使用微软的 Microsoft.EntityFrameworkCore(2.1.4) 和MySql出的 MySql ...

  5. Dapper操作MySQL数据库获取JSON数据中文乱码

    前言 在项目中利用Dapper将JSON数据存储到MySQL数据库,结果发现JSON数据中的中文乱码,特此记录,希望对存储JSON的童鞋能有所帮助,文中若有错误之处,还望批评指正. Dapper获取J ...

  6. EF 连接MySQL 数据库  保存中文数据后乱码问题

    EF 连接MySQL 数据库  保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的 ...

  7. 解决Linux系统下Mysql数据库中文显示成问号的问题

    当我们将开发好的javaWEB项目部署到linux系统上,操作数据库的时候,会出现中文乱码问题,比如做插入操作,发现添加到数据库的数据中文出现论码,下面就将解决linux下mysql中文乱码问题! 打 ...

  8. 以EF形式操作mysql数据库

    1.引入Nuget包: 2.书写EF操作上下文 public class MySqlContext:DbContext { protected override void OnConfiguring( ...

  9. asp.net:录入数据库的中文变问号

    表格是可以接受中文的: 类型也是nvarchar的: 还是出现写中文变问号?? 这时候请加入转义大写N: 如: 原查询语句:insert into table1(name)  values('蜘蛛侠' ...

随机推荐

  1. 201521123017 《Java程序设计》第11周学习总结

    1. 本周学习总结 2. 书面作业 Q1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问,还有什么办法实现互斥同步 ...

  2. 201521123036 《Java程序设计》第13周学习总结

    本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 书面作业 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分 ...

  3. Junit4学习(四)Junit4常用注解

    一,背景知识: 由前面的知识可以知道: /*     * @Test:将一个普通方法修饰为一个测试方法     *   @Test(exception=XXX.class)     *   @Test ...

  4. DOM【介绍、HTML中的DOM、XML中的DOM】

    什么是DOM? DOM(Document Object Model)文档对象模型,是语言和平台的中立接口. 允许程序和脚本动态地访问和更新文档的内容. 为什么要使用DOM? Dom技术使得用户页面可以 ...

  5. DI in ASP.NET Core

    .NET-Core Series Server in ASP.NET-Core DI in ASP.NET-Core Routing in ASP.NET-Core Error Handling in ...

  6. Markdown使用简单示例

    标题示例: 标题一 #标题一 标题二 #标题二 标题三 ###标题三 标题四 ####标题四 标题五 #####标题五 标题六 ######标题六 连接示例 [![License](图片地址)](跳转 ...

  7. IIC-BUS INTERFACE

    I2C总线是由Philips公司开发的一种简单.双向二线制同步串行总线.它只需要两根线即可在连接于总线上的器件之间传送信息. To control multi-master IIC-bus opera ...

  8. JSP 入门

    request是请求,即客服端发来的请求. response是响应,是服务器做出的响应 redirect页面重定向 forward页面跳转 不改变url 四个作用域 如果把变量放到pageContex ...

  9. FastDFS简介和架构图(内容来自于阅读fastdfs官方文档的总结)

    一.FastDFS简介 1. FastDFS是一个轻量级的开源分布式文件系统 2. FastDFS主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡 3. FastDFS实现了软件 ...

  10. http://codeforces.com/problemset/problem/545/D

    D. Queue time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...