如何在 mysql 中插入 utf-8 mb4 字符(ios5 中的表情符号)? [英] How to insert utf-8 mb4 character(emoji in ios5) in mysql?

查看:18
本文介绍了如何在 mysql 中插入 utf-8 mb4 字符(ios5 中的表情符号)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用的是mysql 5.5.10,它的character_sets是

I am using mysql 5.5.10, and its character_sets are

| 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 字节代码表示.

I changed utf8mb4 from utf8 for iOS5's emoji. They are represented by 4byte code.

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

But when I inserted 3 smiley emojis, '???' is in mysql.

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

They are 3F 3F 3F (Hex).

iOS4 的表情我可以很好地存储,但 iOS5 的却不行.

I can store iOS4's emojis well, but not iOS5's.

如何存储 iOS5 的表情符号?

How could I store iOS5's emojis?

请帮帮我.

推荐答案

4 字节 Unicode 字符尚未广泛使用,因此并非所有应用程序都完全支持它们.正确配置后,MySQL 5.5 可以正常使用 4 字节字符 - 检查您的其他组件是否也可以使用它们.

4 byte Unicode characters aren't yet widely used, so not every application out there fully supports them. MySQL 5.5 works fine with 4 byte characters when properly configured – check if your other components can work with them as well.

还有一些其他的事情要检查:

Here's a few other things to check out:

  • 除了设置客户端 &服务器字符集,例如ALTER TABLE mytable charset=utf8mb4, MODIFY COLUMN textfield1 VARCHAR(255) CHARACTER SET utf8mb4,MODIFY COLUMN textfield2 VARCHAR(255) CHARACTER SET utf8mb4; 等等.

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

If your data is already in the utf8 character set, it should convert to utf8mb4 in place without any problems. As always, back up your data before trying!

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

Also make sure your app layer sets its database connections' character set to utf8mb4. Double-check this is actually happening – if you're running an older version of your chosen framework's mysql client library, it may not have been compiled with utf8mb4 support and it won't set the charset properly. If not, you may have to update it or compile it yourself.

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

When viewing your data through the mysql client, make sure you're on a machine that can display emoji, and run a SET NAMES utf8mb4 before running any queries.

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

Once every level of your application can support the new characters, you should be able to use them without any corruption.

这篇关于如何在 mysql 中插入 utf-8 mb4 字符(ios5 中的表情符号)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆