iphone - 如何在 mysql 中插入 utf-8 mb4 字符(ios5 中的表情符号)?

我用的是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; 等等。

    如果您的数据已经在 utf8 字符集中,它应该就地转换为 utf8mb4,没有任何问题。与往常一样,在尝试之前备份您的数据!

  • 还要确保您的应用层将其数据库连接的字符集设置为 utf8mb4。仔细检查这是否真的发生了——如果您正在运行您选择的框架的 mysql 客户端库的旧版本,它可能没有使用 utf8mb4 支持进行编译,并且不会正确设置字符集。如果没有,您可能需要自己更新或编译。

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

一旦您的应用程序的每个级别都可以支持新字符,您就应该能够在没有任何损坏的情况下使用它们。

https://stackoverflow.com/questions/7814293/

相关文章:

mysql - 如何从 MySQL 中的字符串中删除所有非字母数字字符?

mysql - 我可以在我的 WordPress 安装的 wp_options 表中删除 trans

mysql - 从一个表中选择,而不是在另一个表中

mysql - 为什么 MySQL InnoDB 插入这么慢?

sql - 如何从 x 等于多个值的地方进行选择?

mysql - "n:m"和 "1:n"在数据库设计中的意义

mysql - 目录、模式、用户和数据库实例之间的关系

sql - LOAD DATA LOCAL,如何跳过第一行?

mysql - 如何在 phpMyAdmin 中查看我的存储过程?

mysql - 错误!找不到 MySQL 管理器或服务器 PID 文件!威联通