早上好!
我尝试在我的应用程序中实现表情符号已经有一段时间了,但是我遇到了很多困难。我已经测试了几个互联网解决方案,但没有一个是有效的。
我会尽量像我正在做的那样详细说明:
5.6.40-84.0-log和5.6.26-log.
UTF8 without BOM.UTF-8中进行了测试,<meta charset = "utf-8">.<form>有标签accept-charset="UTF-8".Response.AddHeader "Content-Type", "text/html;charset=UTF-8",Response.CodePage=65001,Response.LCID=1060和Response.Charset="utf-8".现在我们来谈谈问题:
在两个版本的MySQL中,当我将COLLATE更改为utf8mb4_unicode_*或utf8mb4_bin时,它会自动返回到utf8mb4_0900_ai_ci。
在5.6.40-84.0-log,版本中,如果我直接在数据库中注册表情符号,它们就像??????????????一样。
在版本5.6.26-log中,如果我直接向数据库注册,则错误返回:
Executing: INSERT INTO `db`.`table` (` emoji`) VALUES ('tion 123 ão'); Operation failed: There was an error while applying the SQL script to the database. ERROR 1366: 1366: Incorrect string value: '\ xF0 \ x9F \ x98 \ x80 \ xF0 \ x9F ...' for column 'emoji' at row 1 SQL Statement: INSERT INTO 'db'. 'Table' ('emoji') VALUES ('tion 123 ão')
在同一版本中,使用SET NAMES 'utf8mb4'或SET NAMES' utf8'在ODBC连接字符串中通过页面注册,将返回以下错误:
Microsoft OLE DB Provider for ODBC Drivers error '80004005' [MySQL] [ODBC 3.51 Driver] [mysqld-5.6.22] Incorrect string value: '\ xE7 \ xE3o' for column 'field' at row 1
编辑1:当我查阅SHOW SESSION VARIABLES LIKE 'character_set%';和SHOW SESSION VARIABLES LIKE "%collation%";数据库时,它返回以下结果:

谢谢!
谷歌翻译的翻译
发布于 2020-05-07 03:57:23
对于Emoji和一些中国人来说,你需要的是utf8mb4,而不是utf8 in MySQL。
既然你正在运行旧的5.6,你可能会遇到另一个问题。http://mysql.rjweb.org/doc.php/limits#767_limit_in_innodb_indexes
如果那个E7E3应该是çã,那么您也有一些latin1 1编码的文本。
不要将编码混合在一个列中。
SHOW SESSION VARIABLES LIKE 'char%'的输出表明,连接只是utf8;它需要是utf8mb4。他们之间的主要区别是在鄂莫吉。
https://stackoverflow.com/questions/61640606
复制相似问题