讓應用程序支持emoji字符

自iPhone從iOS 5在輸入法中開始支持emoji以來,這些表情符號迅速風靡世界。可是不少Web網站居然還不!支!持!!!mysql

那怎麼才能支持emoji呢?其實代碼一行都不用改,由於emoji符號其實是文本,並非圖片,它們僅僅顯示爲圖片而已。並且,emoji符號已經被標準化並編碼到最新的Unicode標準中了,因此,要支持emoji,只須要底層軟件系統支持就能夠了。sql

服務器端要正確存儲emoji符號,只須要確保Web程序和底層數據庫能支持最新的Unicode標準就能夠了。數據庫

若是使用MySQL做爲數據庫,須要升級到5.5.3或更新的版本,而後,把默認編碼從原來的utf8改成utf8mb4,在my.cnf或者my.ini配置文件中修改以下:服務器

[client] default-character-set = utf8mb4 [mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_general_ci 

重啓MySQL,而後使用如下命令查看編碼,應該所有爲utf8mb4(character_set_filesystem和character_set_system除外):網站

mysql> show variables like '%char%'; +--------------------------+--------------------------+ | Variable_name | Value | +--------------------------+--------------------------+ | 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/local/mysql-5.7.... | +--------------------------+--------------------------+ 8 rows in set (0.00 sec) 

使用命令查看collation設置,應該所有是utf8mb4_general_ci編碼

mysql> show variables like '%coll%'; +----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | utf8mb4_general_ci | | collation_database | utf8mb4_general_ci | | collation_server | utf8mb4_general_ci | +----------------------+--------------------+ 3 rows in set (0.01 sec) 

若是character_set_database仍是爲utf8,須要重啓服務器。spa

如今,MySQL就能夠正確存儲emoji字符了。code

Web軟件server

要支持emoji,須要Web軟件也支持。目前,已知支持emoji的包括:圖片

  • Java 8
  • Node

最後,若是你的Web應用程序沒有使用標準的UTF-8編碼,而是使用了GBK等編碼,想要支持emoji就只能呵呵了

相關文章
相關標籤/搜索