让应用程序支持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就只能呵呵了

相关文章
相关标签/搜索