Files
DefectingCat.github.io/defect/make-typecho-support-the-emoji.html
DefectingCat 8c7085f18f
2020-11-02 02:17:54 +00:00

14 lines
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="zh-CN" data-default-color-scheme="&#34;auto&#34;"><head><meta charset="UTF-8"><link rel="apple-touch-icon" sizes="76x76" href="/images/img/apple-touch-icon.webp"><link rel="icon" type="image/png" href="/images/img/favicon.webp"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,shrink-to-fit=no"><meta http-equiv="x-ua-compatible" content="ie=edge"><meta name="theme-color" content="#9DC8C8"><meta name="description" content=""><meta name="author" content="Defectink"><meta name="keywords" content=""><title>使typecho支持emoji🎈 - 🍭Defectink</title><link rel="stylesheet" href="https://cdn.defectink.com/static/twitter-bootstrap/4.5.3/css/bootstrap.min.css"><link rel="stylesheet" href="https://cdn.defectink.com/static/github-markdown-css/4.0.0/github-markdown.min.css"><link rel="stylesheet" href="/lib/hint/hint.min.css"><link rel="stylesheet" href="https://cdn.defectink.com/static/highlight.js/10.0.0/styles/github-gist.min.css"><link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_ba1fz6golrf.css"><link rel="stylesheet" href="https://cdn.defectink.com/static/t/font_1736178_kmeydafke9r.css"><link rel="stylesheet" href="/css/main.css"><link rel="stylesheet" href="/css/xfy.css"><script src="/js/utils.js"></script><script src="/js/color-schema.js"></script><meta name="generator" content="Hexo 5.2.0"><link rel="alternate" href="/xml/atom.xml" title="🍭Defectink" type="application/atom+xml"><link rel="alternate" href="/xml/rss.xml" title="🍭Defectink" type="application/rss+xml"></head><body><header style="height:75vh"><nav id="navbar" class="navbar fixed-top navbar-expand-lg navbar-dark scrolling-navbar"><div class="container"><a class="navbar-brand" href="/">&nbsp;<strong>🍭Defectink</strong>&nbsp;</a> <button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><div class="animated-icon"><span></span><span></span><span></span></div></button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav ml-auto text-center"><li class="nav-item"><a class="nav-link" href="/">🏠 首页</a></li><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">📕 索引</a><div class="dropdown-menu" aria-labelledby="navbarDropdown"><a class="dropdown-item" href="/categories/">🎁 分类</a> <a class="dropdown-item" href="/tags/">🎐 标签</a></div></li><li class="nav-item"><a class="nav-link" href="/archives/">📂 归档</a></li><li class="nav-item"><a class="nav-link" href="/about/">🎃 关于</a></li><li class="nav-item"><a class="nav-link" href="/links/">🙆‍♀️ 小伙伴</a></li><li class="nav-item"><a class="nav-link" href="/pgp/">🔐 PGP</a></li><li class="nav-item" id="search-btn"><a class="nav-link" data-toggle="modal" data-target="#modalSearch">&nbsp;<i class="iconfont icon-search"></i>&nbsp;</a></li><li class="nav-item" id="color-toggle-btn"><a class="nav-link" href="javascript:">&nbsp;<i class="iconfont icon-dark" id="color-toggle-icon"></i>&nbsp;</a></li></ul></div></div></nav><div class="banner intro-2" id="background" parallax="true" style="background:url(/images/img/post.webp) no-repeat center center;background-size:cover"><div class="full-bg-img"><div class="mask flex-center" style="background-color:rgba(0,0,0,.3)"><div class="container page-header text-center fade-in-up"><span class="h2" id="subtitle"></span><div class="mt-3"><span class="post-meta mr-2"><i class="iconfont icon-author" aria-hidden="true"></i> Defectink</span><span class="post-meta"><i class="iconfont icon-date-fill" aria-hidden="true"></i> <time datetime="2019-05-12 13:41" pubdate>2019年5月12日 下午</time></span></div><div class="mt-1"><span class="post-meta mr-2"><i class="iconfont icon-chart"></i> 702 字</span><span class="post-meta mr-2"><i class="iconfont icon-clock-fill"></i> 8 分钟</span></div></div></div></div></div></header><main><div class="container-fluid"><div class="row"><div class="d-none d-lg-block col-lg-2"></div><div class="col-lg-8 nopadding-md"><div class="container nopadding-md" id="board-ctn"><div class="py-5" id="board"><article class="post-content mx-auto" id="post"><h1 style="display:none">使typecho支持emoji🎈</h1><p class="note note-info">本文最后水于2020年11月2日 凌晨</p><div class="markdown-body" id="post-body"><h2 id="Emoji"><a href="#Emoji" class="headerlink" title="Emoji"></a>Emoji</h2><p>emoji是我们身边常见的且神奇的表情符号它被称为绘文字えもじ <em>emoji</em>)。最初是日本在无线通信中所使用的视觉情感符号。与我们常发的表情包不同的是,它并不是图片。</p><p>Emoji的编码是Unicode字符集中的一部分特定形象的Emoji表情符号对应到特定的Unicode字节。也就是说emoji是unicode编码。好处是无论在什么地方使用都不像是图片那么难处理以及可以直接写在数据库内。</p><p><img src="../images/%E4%BD%BFtypecho%E6%94%AF%E6%8C%81emoji/2721696195.webp" srcset="/images/img/loading.gif" alt="emoji_unicode.webp"></p><h3 id="词语发音"><a href="#词语发音" class="headerlink" title="词语发音"></a>词语发音</h3><p>絵文字/えもじemoji的发音是 /emoꜜdʑi/(此处为国际音标)。 <a href="../images/%E4%BD%BFtypecho%E6%94%AF%E6%8C%81emoji/1431864746.webp">2</a></p><ul><li>/e/:即汉语拼音 y<strong>e</strong><strong>ê</strong>的发音,英语单词 b<strong>e</strong>d 中<strong>e</strong>的发音。</li><li>/dʑ/:与汉语拼音 j 对应的浊音。与潮州话拼音方案的 r 相似如潮州话“字”ri⁷字的声母。 <a href="../images/%E4%BD%BFtypecho%E6%94%AF%E6%8C%81emoji/175217384.webp">3</a></li><li>/mo/ 为重读音节。</li></ul><p>在英语中emoji 常被读作 /ɪˈmoʊdʒi/。</p><h2 id="在typecho中使用emoji"><a href="#在typecho中使用emoji" class="headerlink" title="在typecho中使用emoji"></a>在typecho中使用emoji</h2><p>现在多数的软件、网站等都已经广泛的支持emoji表情了。自己也是非常的喜欢这类表情特别喜欢微软家的那种扁平的风格真的很招人喜爱。</p><p><img src="../images/%E4%BD%BFtypecho%E6%94%AF%E6%8C%81emoji/1431864746.webp" srcset="/images/img/loading.gif" alt="1557663679707.webp"></p><p>但是最近使用typecho的时候遇到点小问题发现新安装的typecho居然不支持使用emoji。在文章等页面使用了emoji之后保存会提示数据库查询错误。</p><p>这是因为数据库默认使用的是<code>utf8</code>编码,在<code>utf8</code>的编码中最多只支持3个字节而我们可爱的emoji是4个字节如上述所说的emoji并非图片是直接存储在数据库内的。所以就出现了数据库查询错误导致无法使用emoji的问题。</p><h3 id="修改数据库"><a href="#修改数据库" class="headerlink" title="修改数据库"></a>修改数据库</h3><p>解决办法也非常的简单我们直接使用phpMyAdmin或者sql修改数据库<code>charset</code><code>utf8mb4</code>就ok了</p><pre><code class="hljs sql"><span class="hljs-keyword">alter</span> <span class="hljs-keyword">table</span> typecho_comments <span class="hljs-keyword">convert</span> <span class="hljs-keyword">to</span> <span class="hljs-built_in">character</span> <span class="hljs-keyword">set</span> utf8mb4 <span class="hljs-keyword">collate</span> utf8mb4_unicode_ci;
<span class="hljs-keyword">alter</span> <span class="hljs-keyword">table</span> typecho_contents <span class="hljs-keyword">convert</span> <span class="hljs-keyword">to</span> <span class="hljs-built_in">character</span> <span class="hljs-keyword">set</span> utf8mb4 <span class="hljs-keyword">collate</span> utf8mb4_unicode_ci;
<span class="hljs-keyword">alter</span> <span class="hljs-keyword">table</span> typecho_fields <span class="hljs-keyword">convert</span> <span class="hljs-keyword">to</span> <span class="hljs-built_in">character</span> <span class="hljs-keyword">set</span> utf8mb4 <span class="hljs-keyword">collate</span> utf8mb4_unicode_ci;
<span class="hljs-keyword">alter</span> <span class="hljs-keyword">table</span> typecho_metas <span class="hljs-keyword">convert</span> <span class="hljs-keyword">to</span> <span class="hljs-built_in">character</span> <span class="hljs-keyword">set</span> utf8mb4 <span class="hljs-keyword">collate</span> utf8mb4_unicode_ci;
<span class="hljs-keyword">alter</span> <span class="hljs-keyword">table</span> typecho_options <span class="hljs-keyword">convert</span> <span class="hljs-keyword">to</span> <span class="hljs-built_in">character</span> <span class="hljs-keyword">set</span> utf8mb4 <span class="hljs-keyword">collate</span> utf8mb4_unicode_ci;
<span class="hljs-keyword">alter</span> <span class="hljs-keyword">table</span> typecho_relationships <span class="hljs-keyword">convert</span> <span class="hljs-keyword">to</span> <span class="hljs-built_in">character</span> <span class="hljs-keyword">set</span> utf8mb4 <span class="hljs-keyword">collate</span> utf8mb4_unicode_ci;
<span class="hljs-keyword">alter</span> <span class="hljs-keyword">table</span> typecho_users <span class="hljs-keyword">convert</span> <span class="hljs-keyword">to</span> <span class="hljs-built_in">character</span> <span class="hljs-keyword">set</span> utf8mb4 <span class="hljs-keyword">collate</span> utf8mb4_unicode_ci;</code></pre><p>如果有没有涉及的表,按照同样的语句修改就可以了。</p><p>修改后就可以看到表的‘排序规则’(charset)为可以使用emoji的<code>utf8mb4</code>了。</p><p><img src="../images/%E4%BD%BFtypecho%E6%94%AF%E6%8C%81emoji/175217384.webp" srcset="/images/img/loading.gif" alt="2019-05-12T12:27:33.webp"></p><h3 id="修改typecho配置文件"><a href="#修改typecho配置文件" class="headerlink" title="修改typecho配置文件"></a>修改typecho配置文件</h3><p>当数据库修改完成之后到typecho的目录下找到其配置文件<code>config.inc.php</code>。并且修改为刚刚设置编码就ok了</p><pre><code class="hljs php">$db-&gt;addServer(<span class="hljs-keyword">array</span> (
<span class="hljs-string">&#x27;host&#x27;</span> =&gt; localhost,
<span class="hljs-string">&#x27;user&#x27;</span> =&gt; <span class="hljs-string">&#x27;root&#x27;</span>,
<span class="hljs-string">&#x27;password&#x27;</span> =&gt; <span class="hljs-string">&#x27;my_password&#x27;</span>,
<span class="hljs-string">&#x27;charset&#x27;</span> =&gt; <span class="hljs-string">&#x27;utf8mb4&#x27;</span>, <span class="hljs-comment">//修改这一行</span>
<span class="hljs-string">&#x27;port&#x27;</span> =&gt; <span class="hljs-number">3306</span>,
<span class="hljs-string">&#x27;database&#x27;</span> =&gt; <span class="hljs-string">&#x27;喵喵喵&#x27;</span>
)</code></pre><p>全部修改完成后就能正常的在typecho中使用emoji了</p><p><img src="../images/%E4%BD%BFtypecho%E6%94%AF%E6%8C%81emoji/4188132525.webp" srcset="/images/img/loading.gif" alt="2019-05-12T12:31:18.webp"></p></div><hr><div><div class="post-metas mb-3"><div class="post-meta mr-3"><i class="iconfont icon-category"></i> <a class="hover-with-bg" href="/categories/%E5%AE%9E%E8%B7%B5/">实践</a></div><div class="post-meta"><i class="iconfont icon-tags"></i> <a class="hover-with-bg" href="/tags/typecho/">typecho</a></div></div><p class="note note-warning"><a target="_blank" href="https://zh.wikipedia.org/wiki/Wikipedia:CC_BY-SA_3.0%E5%8D%8F%E8%AE%AE%E6%96%87%E6%9C%AC" rel="nofollow noopener noopener">CC BY-SA 3.0❤</a></p><div class="post-prevnext row"><article class="post-prev col-6"><a href="/defect/minecraft-bedrock-server.html"><i class="iconfont icon-arrowleft"></i> <span class="hidden-mobile">Minecraft bedrock服务端🥂</span> <span class="visible-mobile">上一篇</span></a></article><article class="post-next col-6"><a href="/defect/hexo-again.html"><span class="hidden-mobile">想起来当年还折腾过hexo</span> <span class="visible-mobile">下一篇</span><i class="iconfont icon-arrowright"></i></a></article></div></div><article class="comments" id="comments"><div id="vcomments"></div><script type="text/javascript">function loadValine(){addScript("https://cdn.defectink.com/static/valine/1.4.14/Valine.min.js",function(){new Valine({el:"#vcomments",app_id:"dD9t7mcIBVzJWag5ez6GPy2v-MdYXbMMI",app_key:"bWG6pmKsEscrH4JjrpNNAAy6",placeholder:"嘤嘤嘤???",path:window.location.pathname,avatar:"retro",meta:["nick","mail","link"],pageSize:"10",lang:"zh-CN",highlight:!0,recordIP:!1,serverURLs:""})})}waitElementVisible("vcomments",loadValine)</script><noscript>Please enable JavaScript to view the <a target="_blank" href="https://valine.js.org" rel="nofollow noopener noopener">comments powered by Valine.</a></noscript></article></article></div></div></div><div class="d-none d-lg-block col-lg-2 toc-container" id="toc-ctn"><div id="toc"><p class="toc-header"><i class="iconfont icon-list"></i>&nbsp;目录</p><div id="tocbot"></div></div></div></div></div></main><a id="scroll-top-button" href="#" role="button"><i class="iconfont icon-arrowup" aria-hidden="true"></i></a><div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel" aria-hidden="true"><div class="modal-dialog modal-dialog-scrollable modal-lg" role="document"><div class="modal-content"><div class="modal-header text-center"><h4 class="modal-title w-100 font-weight-bold">搜索</h4><button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="modal-body mx-3"><div class="md-form mb-5"><input type="text" id="local-search-input" class="form-control validate"> <label data-error="x" data-success="v" for="local-search-input">关键词</label></div><div class="list-group" id="local-search-result"></div></div></div></div></div><footer class="text-center mt-5 py-3"><div class="footer-content"><a href="https://hexo.io" target="_blank" rel="nofollow noopener"><span>Hexo</span></a><i class="iconfont icon-love"></i> <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"><span>Fluid</span></a></div><div class="beian"><a href="http://beian.miit.gov.cn/" target="_blank" rel="nofollow noopener">皖ICP备17017808号</a></div></footer><script src="https://cdn.defectink.com/static/jquery/3.4.1/jquery.min.js"></script><script src="https://cdn.defectink.com/static/twitter-bootstrap/4.5.3/js/bootstrap.min.js"></script><script src="/js/debouncer.js"></script><script src="/js/main.js"></script><script src="/js/lazyload.js"></script><script defer="defer" src="https://cdn.defectink.com/static/clipboard.js/2.0.6/clipboard.min.js"></script><script src="/js/clipboard-use.js"></script><script src="/js/xfy.js"></script><script src="https://cdn.defectink.com/static/tocbot/4.11.1/tocbot.min.js"></script><script>$(document).ready(function(){var t=$("#board-ctn").offset().top;tocbot.init({tocSelector:"#tocbot",contentSelector:"#post-body",headingSelector:"h1,h2,h3,h4,h5,h6",linkClass:"tocbot-link",activeLinkClass:"tocbot-active-link",listClass:"tocbot-list",isCollapsedClass:"tocbot-is-collapsed",collapsibleClass:"tocbot-is-collapsible",collapseDepth:3,scrollSmooth:!0,headingsOffset:-t}),0<$(".toc-list-item").length&&$("#toc").css("visibility","visible")})</script><script src="https://cdn.defectink.com/static/typed.js/2.0.11/typed.min.js"></script><script>var typed=new Typed("#subtitle",{strings:[" ","使typecho支持emoji🎈&nbsp;"],cursorChar:"❤",typeSpeed:70,loop:!1});typed.stop(),$(document).ready(function(){$(".typed-cursor").addClass("h2"),typed.start()})</script><script src="/js/local-search.js"></script><script>var path="/xml/local-search.xml",inputArea=document.querySelector("#local-search-input");inputArea.onclick=function(){searchFunc(path,"local-search-input","local-search-result"),this.onclick=null}</script><script src="https://cdn.defectink.com/static/fancybox/3.5.7/jquery.fancybox.min.js"></script><link rel="stylesheet" href="https://cdn.defectink.com/static/fancybox/3.5.7/jquery.fancybox.min.css"><script>$("#post img:not(.no-zoom img, img[no-zoom]), img[zoom]").each(function(){var t=document.createElement("a");$(t).attr("data-fancybox","images"),$(t).attr("href",$(this).attr("src")),$(this).wrap(t)})</script><script src="https://cdn.defectink.com/static/mermaid/8.5.0/mermaid.min.js"></script><script>window.mermaid&&mermaid.initialize({theme:"default"})</script></body></html>