SQLyog如何创建数据库,详细教程,SQLyog如何创建数据库,你知道怎么操作吗?下面将详细介绍......
.net下如何让mysql支持emoji字符不出现乱码
.net环境下,读取mysql数据库中emoji字符会出现数据库异常,今天分享一下我是如何处理这个问题的。
方法/步骤
首先是有一个移动端产品,开发的App在各类手持设备中使用,输入法支持各种表情符,最终用户的输入将存到mysql数据库
有一个.net的数据管理后台,后台有一个管理界面,管理移动端上传的用户信息,ado.net连接mysql,并读取数据,页面显示时会抛出如下异常:
“给定关键字不在字典中"
MySql.Data.MySqlClient.CharSetMap.GetChararcterSet(DBVersion version, String CharSetName)
根据异常堆栈信息,我们可以判断这个异常来自MySql.Data.dll,底层驱动,源码如下:
经过排查,发现mysql数据库表中,某个字段是utf8mb4类型,支持emoji字符集,但.net字符库里面并没有这个字符集的支持。
尝试修改驱动代码,增加语句
mapping.Add("utf8mb4", new CharacterSet("utf-32", 4));
果然,这样不报错了
因为.net的字符集里面就不支持utf8mb4,所以尝试用utf-32来试试
它跟utf8mb4一样长度,都是4个字节;
数据读取不报错了,界面上也显示了完整的数据,但涉及到emojj字符的数据全部是乱码。。。
各种尝试未果。。。
感叹一下,.net处理emojj的资料怎么这么少哦
最后,尝试把连接串的字符集和网页的编码统一为utf8
!--数据库连接编码-->
add name="MySqlConn" connectionString="Server=localhost;User Id=xxx;Password=xxx;Database=xxx;charset=utf8" />
!--网页编码-->
globalization requestEncoding="utf-8" responseEncoding="utf-8" />
不报错、切没有乱码了,只是不显示emoji字符,问题暂时解决。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
- 详细阅读
- 详细阅读
-
如何处理'mysql' 不是内部或外部命令的报错详细阅读
如何处理mysql 不是内部或外部命令的报错,今天安装myql-5.7.23,想要从命令行中连接myql,结果出现如图报错。下面来写下,这种报错的解决方式:......
2023-03-16 500 MYSQL