問題描述
我用的是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 字節(jié)代碼表示.
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 字節(jié) Unicode 字符尚未廣泛使用,因此并非所有應(yīng)用程序都完全支持它們.正確配置后,MySQL 5.5 可以正常使用 4 字節(jié)字符 - 檢查您的其他組件是否也可以使用它們.
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:
除了設(shè)置客戶端 &服務(wù)器字符集,例如
ALTER TABLE mytable charset=utf8mb4, MODIFY COLUMN textfield1 VARCHAR(255) CHARACTER SET utf8mb4,MODIFY COLUMN textfield2 VARCHAR(255) CHARACTER SET utf8mb4;
等等.
如果您的數(shù)據(jù)已經(jīng)在 utf8 字符集中,它應(yīng)該就地轉(zhuǎn)換為 utf8mb4,沒有任何問題.與往常一樣,在嘗試之前備份您的數(shù)據(jù)!
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!
還要確保您的應(yīng)用層將其數(shù)據(jù)庫連接的字符集設(shè)置為 utf8mb4.仔細檢查這是否真的發(fā)生了——如果您正在運行您選擇的框架的 mysql 客戶端庫的舊版本,它可能沒有使用 utf8mb4 支持進行編譯,并且不會正確設(shè)置字符集.如果沒有,您可能需要自己更新或編譯.
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 客戶端查看數(shù)據(jù)時,請確保您在可以顯示表情符號的機器上,并在運行任何查詢之前運行 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.
一旦您的應(yīng)用程序的每個級別都可以支持新字符,您就應(yīng)該能夠在沒有任何損壞的情況下使用它們.
Once every level of your application can support the new characters, you should be able to use them without any corruption.
這篇關(guān)于如何在 mysql 中插入 utf-8 mb4 字符(ios5 中的表情符號)?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!