修正WordPress Emoji和特殊符号无法显示
温馨提示:本文共计725个字,预计阅读时间需要3分钟。
趁快过年赶紧修复下之前的 bug,记录下以便查阅。
近期生活感悟很多,但是不太想写,可能酒喝少没灵感吧。
本文主要指通过输入法可在正文和评论输入 Emoji 表情并显示。
实现代码
因为之前用的虚拟主机,当时 MySQL 数据库采用的是 gbk_chinese_ci,记得曾经改过一次 UTF-8,不知是不是有次升级数据库把编码又转成了 gbk,因个人特别喜欢使用符号表情,比如这种 ヾ(。 ̄□ ̄)ツ゜゜゜ 在 gbk 下就会显示成❓,而且我也特别喜欢用 emoji 表情,现在不管是 PC 上的输入法或移动终端的都支持直接输出 emoji,比如这样?,还有下面的那样。
??❌❌⭕⭕??? ?✌?
猜猜上面啥意思,答案写在评论区~
言归正传,因为 emoji 有 4 个字节,所以即使转成 UTF8 也是不支持的,UTF8 编码只支持 1-3 个字节,所以得转成 utf8mb4,它是兼容 UTF8 的。(MYSQL 5.5 开始支持)gbk 就更不说了,能显示才有?。
因个人懒,所以代码只针对正文和评论区进行了修改,其他依然用 gbk,代码放出如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# 改成你自己的数据库名: ALTER DATABASE 这里数据库名字 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; # wp_commentmeta ALTER TABLE wp_commentmeta CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_commentmeta CHANGE meta_key meta_key varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_commentmeta CHANGE meta_value meta_value longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # wp_comments ALTER TABLE wp_comments CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_comments CHANGE comment_author comment_author text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_comments CHANGE comment_author_email comment_author_email varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_comments CHANGE comment_author_url comment_author_url varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_comments CHANGE comment_author_IP comment_author_IP varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_comments CHANGE comment_content comment_content mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_comments CHANGE comment_approved comment_approved varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_comments CHANGE comment_agent comment_agent varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_comments CHANGE comment_type comment_type varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # wp_postmeta ALTER TABLE wp_postmeta CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_postmeta CHANGE meta_key meta_key varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_postmeta CHANGE meta_value meta_value longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # wp_posts ALTER TABLE wp_posts CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE post_content post_content longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE post_title post_title mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE post_excerpt post_excerpt mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE post_status post_status varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE comment_status comment_status varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE ping_status ping_status varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE post_password post_password varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE post_name post_name varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE to_ping to_ping mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE pinged pinged mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE post_content_filtered post_content_filtered longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE guid guid varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE post_type post_type varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE wp_posts CHANGE post_mime_type post_mime_type varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
如果有和我同样情况需修改的,记得修改前务必备份数据库,切记。
MySQL 那边也需要配置下,有没有用不晓得,貌似我之前没修改也行,代码先放这里(在现有配置下加入行)。
1 2 3 4 5 6 7 8 9 10 11 |
[client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect = 'SET NAMES utf8mb4' character-set-client-handshake = false |
还有一个坑,就是 WP 的连接设置,wp-config.php 里的 define('DB_CHARSET', 'utf8'),看个人情况是否有必须修改为 utf8mb4,我反正没改,这里先提及下。
临过年越来越近,但完全没感觉到年的气息,也不晓得回去准备点啥,缺少了仪式感就真的没啥味道了。
-End-
2020年01月17日 23:10 沙发
我就认识那一圈XXOOXX?
2020年01月18日 09:48
@野生的喵喵 停车做爱枫林晚 ???
2020年01月18日 15:40
@野生的喵喵 对了?,你的?书有多的没,我上次去你那边留言没收到邮件回复呀
2020年01月18日 15:48
@Sam.Z 我回复了,邮件应该没坏啊,现在木有呢,书都在看,我并没有一本本看,随心所欲,看那个书顺眼就拉过来溜溜~~ 上淘宝找那个最易上手,很便宜的~
2020年01月18日 16:12
@野生的喵喵 ?真没收到,可能邮箱留错了,其实我有好多电子书和视频,学不进去,习惯性的拿着就乱弹一气,随便整~~ 就会T3231323 ??
2020年01月18日 16:15
@Sam.Z 你留的是vip.qq的邮箱,跟之前的不一样 ,我这几天都看着优酷里面果木浪子的教学学,哈哈,挺好的
2020年01月18日 16:21
@野生的喵喵 原来如此,收到,我也去看看,到时候合奏一曲
2020年01月18日 09:32 板凳
应该放假了吧,哥…有时间折腾博客啦…
年味已经木有啦,只给小孩买了新衣服鞋子,自己还是老样子。
2020年01月18日 09:46
@Mr.Chou 是快放假了没心情上班,所以多折腾下博客,把之前没弄好的修正了。谁不是老样子呢,兄弟你最近如何,地皮租出去了没
2020年01月18日 10:11
@Sam.Z 放假了有点无聊,想去钓鱼又降温了,地皮没找到人租暂时不管了…
2020年01月18日 15:27
@Mr.Chou 放假放得好早呀,我们这边要按照政策来得努力到29号上完 o(╥﹏╥)o 放假这么早可以弄点年货啥,仪式感整起。
┬┴┬┌─ ●─┬─ │─┼─┐ ●├─┤○
┴┬┴├┬ ┌─┼─ │◎ │ │ ○└┬┘●
─┼─││ │ │ ││─┴─┴ ──┼──
●│○││ ┴─┼─ │○ ● / │ \
2020年01月18日 13:47 地板
看不懂
2020年01月18日 15:39
@山卜方 ?️ 停车做爱枫林晚,哈哈哈???
2020年01月20日 09:49 4楼
其实我还蛮喜欢你评论区这边带表情的,感觉挺好,等过完年我也改造一下!提前恭祝博主“新年快乐”
2020年01月20日 09:52
@南生余 ?你那个不是也支持的嘛,才去你那边说完新年快乐这边马上就踩着脚印来了,看来今天不忙哦,哈哈哈,根本没心思上班?
2020年01月20日 09:54
@Sam.Z 哈哈哈,今年头还是忙哟,一大堆事情要做,刚到客户单位,惯例先看看博客在工作。就算没心思上班工作的事情还是要完成,不完成要扣钱! 。我的那个表情是输入法自带的,没有你这个排在上面好看!
2020年01月25日 21:47 5楼
大年初一,给您拜大年了,做好防护措施,健健康康过春节。
2020年02月01日 14:08
@响石潭 医生,新年快乐~ 辛苦了
2020年01月27日 14:25 6楼
新年快乐~
2020年02月01日 14:05
@老陳网志 老陈新年快乐~ *˖✦Ӈ੨ƤƤყ Ɲҽա Ⴤℯ੨ɽ✦˖*
2020年02月04日 16:51 7楼
迟来的拜年
_____ | _____ \ / /______ | | / /_ /
()____)+()____) —– / | | -+-. /_.|_|/_.
()____)+()____) \ / /___ __|__ | | | | / | | /
()____)+()____) —– | | | | |_| _|_|_ /_`-‘/_\
()____)+()____) __|__ | | __|_|____ | | ___|___
()____)+()____) /|\ | | | | / \ _/|\_
/ | \
2020年02月08日 01:14
@心灵博客 谢谢,你也新年快乐,今天元宵节了。