当前位置: 首页 > 面试题库 >

如何在MySQL中插入UTF-8 MB4字符(iOS5中的表情符号)?

郑翰海
2023-03-14
问题内容

我正在使用mysql 5.5.10,它的character_sets是

| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
| collation_connection     | utf8mb4_general_ci         |
| collation_database       | utf8mb4_general_ci         |
| collation_server         | utf8mb4_general_ci         |

我将utf8mb4从utf8更改为iOS5的表情符号。它们由4字节代码表示。

但是当我插入3个笑脸表情符号时,“ ???” 在mysql中。

它们是3F 3F 3F(十六进制)。

我可以很好地存储iOS4的表情符号,但不能存储iOS5的表情符号。

如何存储iOS5的表情符号?

请帮我。


问题答案:

4字节Unicode字符尚未得到广泛使用,因此并不是每个应用程序都完全支持它们。正确配置后,MySQL 5.5可以很好地使用4字节字符-
检查您的其他组件是否也可以使用它们。

还有其他一些要检查的内容:

  • 除了设置客户端和服务器字符集(例如ALTER TABLE mytable charset=utf8mb4, MODIFY COLUMN textfield1 VARCHAR(255) CHARACTER SET utf8mb4,MODIFY COLUMN textfield2 VARCHAR(255) CHARACTER SET utf8mb4;,等等)之外,确保所有表的默认字符集和文本字段都转换为utf8mb4 。

如果您的数据已经在utf8字符集中,则应将其转换为utf8mb4,而不会出现任何问题。与往常一样,请先备份数据,然后再尝试!

  • 还要确保您的应用程序层将其数据库连接的字符集设置为utf8mb4。请仔细检查这是否确实在发生–如果您运行的是所选框架的mysql客户端库的旧版本,则可能未使用utf8mb4支持对其进行编译,因此无法正确设置字符集。如果没有,您可能必须自己对其进行更新或编译。

  • 通过mysql客户端查看数据时,请确保您所在的计算机可以显示表情符号,并SET NAMES utf8mb4在运行任何查询之前运行。

一旦您的应用程序的每个级别都可以支持新字符,您就应该能够使用它们而不会出现任何损坏。



 类似资料:
  • 我需要添加用户名从Facebook到数据库,这些名称有UTF-8字符,如 (ą,č,ę,ė,į,š,ų,ū).当我把它添加到数据库中,例如字母看起来像

  • 我有一个StringBuffer类型的变量,它有null字符,即“\0”中间体。我可以用null字符正确打印变量。但是当我试图在Oracle表中插入这个变量时,我不能插入整个StringBuffer变量;只有“\0”之前的部分。我插入这个变量的列的数据类型为varchar2(50)。我不知道为什么会这样。可能是oracle不允许字符串带有null术语字符中间体。我知道一旦在字符串中遇到“\0”,它

  • 本文向大家介绍如何在页面中插入TAB符号(制表符)相关面试题,主要包含被问及如何在页面中插入TAB符号(制表符)时的应答技巧和注意事项,需要的朋友参考一下

  • 问题内容: 我想在单词中插入“ at”一词,以便日期看起来像: 2010年5月26日,星期三,上​​午11:17 我可以使它看起来像没有 2010年5月26日,星期三,上​​午11:17 通过使用 如何插入“ at”一词? 问题答案: 您可以使用单引号将文字转义。 这将在2010年5月26日星期三上午11:17输出

  • 问题内容: 目的: 在Golang中的字符串中每x个字符插入一个字符 输入: 预期产量: 尝试次数 尝试一次 结果是: 尝试两次 计算字符数 对于循环 如果X = 5,则插入一个 尝试三 扫描结合加入 问题 目前尝试两次和三次不包含代码段的原因是,我仍在思考应该使用哪种方法在Golang中的字符串中每X个字符插入一个字符。 问题答案: https://play.golang.org/p/HEGbe

  • 问题内容: 我将承担将数据库从Latin1转换为UTF-8的繁琐而棘手的任务。 在这一点上,我只想检查存储在表中的数据类型,因为这将确定我应使用哪种方法转换数据。 具体来说,我想检查Latin1列中是否有UTF-8字符,什么是最好的方法?如果只影响几行,那么我可以手动修复它。 选项1.执行MySQL转储并使用Perl搜索UTF-8字符吗? 选项2。使用MySQL CHAR_LENGTH查找具有多字