Typecho 使用 emoji 表情 启用 EmojiHelper 插件 提示Database Query Error

  • 2020 年 09 月 17 日
  • 77次
  • 614 字
  • 暂无评论

前言

在使用 typecho 发现当提交带有 emoji 表情的评论时,emoji 表情会变成一个“?”,搜索之后发现原因是 typecho 安装时使用的数据库编码为 utf8 , 在 utf8编码中字符最大长度为 3 字节,但 emoji 表情编码为 4 字节,固导致编码异常,表情变为“?”,所以我们需要修改字符编码。
网上的解决方法大多数为安装 typecho 插件,上传后进入 typecho 后台启用插件即可。
Tips:启用成功后即可删除该插件,因为它只是执行了一段sql语句。

这里两个版本下载任意版本均可,下载地址:EmojiHelper 1.2 EmojiHelper 2.0

大多数情况下插件 启用成功 后以上问题即解决,部分用户在启用作件时提示:Database Query Error
即 数据库查询错误,这个时候我们可以选择手动修改,方法如下。


首先登录服务器后台进入数据库操作页面,选中站点的 typecho 数据库,
如果没有自己定义的表可直接复制下面的SQL语句执行。

alter table typecho_comments convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_contents convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_fields convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_metas convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_options convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_relationships convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_users convert to character set utf8mb4 collate utf8mb4_general_ci;

如果还有其他自定义的表请一同修改,格式如下:

alter table 表名称 convert to character set utf8mb4 collate utf8mb4_general_ci

执行后提示:#影响了x行。 接下来我们再去网站根目录修改配置文件:config.inc.php

进入网站根目录即安装 typecho的目录,找到 config.inc.php 文件,跳转到大约 60 行左右

/** 定义数据库参数 */
$db = new Typecho_Db('Mysql', 'typecho_');
$db->addServer(array (
  'host' => '服务器地址',
  'user' => '数据库用户名',
  'password' => '数据库密码',
  'charset' => 'utf8mb4',    # 修改此行 
  'port' => '数据库端口',
  'database' => '数据库名',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);

将: 'charset' => 'utf8', 中的 utf8 修改为 utf8mb4 ,修改完成后保存文件即可。


emoji表情示例:

  • emoji表情(非图片可复制)
    😀😁😂😃😄😅😆😉😊😋😎😍😘😗😙😚☺😇😐😑😶😏😣😥😮😯😪😫😴😌😛😜😝😒😓😔😕😲😷😖😞😟😤😢😭😦😧😨😬😰😱😳😵😡😠
  • emoji人物(非图片可复制)
    👦👧👨👩👴👵👶👱👮👲👳👷👸💂🎅👰👼💆💇🙍🙎🙅🙆💁🙋🙇🙌🙏👤👥🚶🏃👯💃👫👬👭💏💑👪
  • emoji手势(非图片可复制)
    💪👈👉☝👆👇✌✋👌👍👎✊👊👋👏👐✍
  • emoji日常(非图片可复制)
    👣👀👂👃👅👄💋👓👔👕👖👗👘👙👚👛👜👝🎒💼👞👟👠👡👢👑👒🎩🎓💄💅💍🌂
  • emoji手机(非图片可复制)
    📱📲📶📳📴☎📞📟📠
  • emoji公共(非图片可复制)
    ♻🏧🚮🚰♿🚹🚺🚻🚼🚾⚠🚸⛔🚫🚳🚭🚯🚱🚷🔞💈

🙈🙉🙊🐵🐒🐶🐕🐩🐺🐱😺😸😹😻😼😽🙀😿😾🐈🐯🐅🐆🐴🐎🐮🐂🐃🐄🐷🐖🐗🐽🐏🐑🐐🐪🐫🐘🐭🐁🐀🐹🐰🐇🐻🐨🐼🐾🐔🐓🦆🦢🕊🦜🦉🐣🐤🐥🐦🐧🐸🐊🐢🐍🐲🐉🐳🐋🐬🐟🐠🐡🐙🐚🐌🐛🐜🐝🐞🦋

  • emoji植物(非图片可复制)
    💐🌸💮🌹🌺🌻🌼🌷🌱🌲🌳🌴🌵🌾🌿🍀🍁🍂🍃
  • emoji自然(非图片可复制)
    🌍🌎🌏🌐🌑🌒🌓🌔🌕🌖🌗🌘🌙🌚🌛🌜☀🌝🌞⭐🌟🌠☁⛅☔⚡❄🔥💧🌊
  • emoji饮食(非图片可复制)
    🍇🍈🍉🍊🍋🍌🍍🍎🍏🍐🍑🍒🍓🍅🍆🌽🍄🌰🍞🍖🍗🍔🍟🍕🍳🍲🍱🍘🍙🍚🍛🍜🍝🍠🍢🍣🍤🍥🍡🍦🍧🍨🍩🍪🎂🍰🍫🍬🍭🍮🍯🍼☕🍵🍶🍷🍸🍹🍺🍻🍴
  • emoji文体(非图片可复制)
    🎪🎭🎨🎰🚣🛀🎫🏆⚽⚾🏀🏈🏉🎾🎱🎳⛳🎣🎽🎿🏂🏄🏇🏊🚴🚵🎯🎮🎲🎷🎸🎺🎻🎬
  • emoji恐怖(非图片可复制)
    😈👿👹👺💀☠👻👽👾💣
  • emoji旅游(非图片可复制)
    🌋🗻🏠🏡🏢🏣🏤🏥🏦🏨🏩🏪🏫🏬🏭🏯🏰💒🗼🗽⛪⛲🌁🌃🌆🌇🌉🌌🎠🎡🎢🚂🚃🚄🚅🚆🚇🚈🚉🚊🚝🚞🚋🚌🚍🚎🚏🚐🚑🚒🚓🚔🚕🚖🚗🚘🚚🚛🚜🚲⛽🚨🚥🚦🚧⚓⛵🚤🚢✈💺🚁🚟🚠🚡🚀🎑🗿🛂🛃🛄🛅
  • emoji物品(非图片可复制)
    💌💎🔪💈🚪🚽🚿🛁⌛⏳⌚⏰🎈🎉🎊🎎🎏🎐🎀🎁📯📻📱📲☎📞📟📠🔋🔌💻💽💾💿📀🎥📺📷📹📼🔍🔎🔬🔭📡💡🔦🏮📔📕📖📗📘📙📚📓📃📜📄📰📑🔖💰💴💵💶💷💸💳✉📧📨📩📤📥📦📫📪📬📭📮✏✒📝📁📂📅📆📇📈📉📊📋📌📍📎📏📐✂🔒🔓🔏🔐🔑🔨🔫🔧🔩🔗💉💊🚬🔮🚩🎌💦💨
  • emoji标志(非图片可复制)
    ♠♥♦♣🀄🎴🔇🔈🔉🔊📢📣💤💢💬💭♨🌀🔔🔕✡✝🔯📛🔰🔱⭕✅☑✔✖❌❎➕➖➗➰➿〽✳✴❇‼⁉❓❔❕❗©®™🎦🔅🔆💯🔠🔡🔢🔣🔤🅰🆎🅱🆑🆒🆓ℹ🆔Ⓜ🆕🆖🅾🆗🅿🆘🆙🆚🈁🈂🈷🈶🈯🉐🈹🈚🈲🉑🈸🈴🈳㊗㊙🈺🈵▪▫◻◼◽◾⬛⬜🔶🔷🔸🔹🔺🔻💠🔲🔳⚪⚫🔴🔵
  • emoji生肖(非图片可复制)
    🐁🐂🐅🐇🐉🐍🐎🐐🐒🐓🐕🐖
  • emoji星座(非图片可复制)
    ♈♉♊♋♌♍♎♏♐♑♒♓⛎
  • emoji钟表(非图片可复制)
    🕛🕧🕐🕜🕑🕝🕒🕞🕓🕟🕔🕠🕕🕡🕖🕢🕗🕣🕘🕤🕙🕥🕚🕦⌛⏳⌚⏰⏱⏲🕰
  • emoji心形(非图片可复制)
    💘❤💓💔💕💖💗💙💚💛💜💝💞💟❣
  • emoji花草(非图片可复制)
    💐🌸💮🌹🌺🌻🌼🌷🌱🌿🍀
  • emoji树叶(非图片可复制)
    🌿🍀🍁🍂🍃
  • emoji月亮(非图片可复制)
    🌑🌒🌓🌔🌕🌖🌗🌘🌙🌚🌛🌜🌝
  • emoji水果(非图片可复制)
    🍇🍈🍉🍊🍋🍌🍍🍎🍏🍐🍑🍒🍓
  • emoji钱币(非图片可复制)
    💴💵💶💷💰💸💳
  • emoji交通(非图片可复制)
    🚂🚃🚄🚅🚆🚇🚈🚉🚊🚝🚞🚋🚌🚍🚎🚏🚐🚑🚒🚓🚔🚕🚖🚗🚘🚚🚛🚜🚲⛽🚨🚥🚦🚧⚓⛵🚣🚤🚢✈💺🚁🚟🚠🚡🚀
  • emoji建筑(非图片可复制)
    🏠🏡🏢🏣🏤🏥🏦🏨🏩🏪🏫🏬🏭🏯🏰💒🗼🗽⛪🌆🌇🌉
  • emoji办公(非图片可复制)
    📱📲☎📞📟📠🔋🔌💻💽💾💿📀🎥📺📷📹📼🔍🔎🔬🔭📡📔📕📖📗📘📙📚📓📃📜📄📰📑🔖💳✉📧📨📩📤📥📦📫📪📬📭📮✏✒📝📁📂📅📆📇📈📉📊📋📌📍📎📏📐✂🔒🔓🔏🔐🔑
  • emoji箭头(非图片可复制)
    ⬆↗➡↘⬇↙⬅↖↕↔↩↪⤴⤵🔃🔄🔙🔚🔛🔜🔝

版权属于:Houzi0

本文链接:https://houzi0.com/archives/2.html



—— 暂无评论 ——

OωO