<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>博客</title>
    <link>https://blog.zdsr.cn/</link>
    <description>Recent content on 博客</description>
    <generator>Hugo -- 0.148.2</generator>
    <language>zh-cn</language>
    <lastBuildDate>Tue, 27 Feb 2024 11:10:24 +0800</lastBuildDate>
    <atom:link href="https://blog.zdsr.cn/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Netlify / Vercel 优选线路</title>
      <link>https://blog.zdsr.cn/post/2024/netlify-vercel-cname/</link>
      <pubDate>Tue, 27 Feb 2024 11:10:24 +0800</pubDate>
      <guid>https://blog.zdsr.cn/post/2024/netlify-vercel-cname/</guid>
      <description>&lt;h2 id=&#34;0-背景&#34;&gt;0. 背景&lt;/h2&gt;
&lt;p&gt;许多做静态网站的用户，都选择使用 Netlify 或 Vercel 作为静态网站托管服务，但是由于国内网络问题，默认解析的电信联通线路延迟较高。而 Netlify 和 Vercel 均未提供自选线路。所以本文主要介绍如何优化 Netlify 和 Vercel 的解析线路。&lt;/p&gt;
&lt;h2 id=&#34;1-netlify-优选&#34;&gt;1. Netlify 优选&lt;/h2&gt;
&lt;p&gt;现在 Netlify 默认解析新加坡，电信线路延迟较高，移动联通线路延迟较低，所以重点优化电信线路。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;默认线路&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zdsr.cn/post/2024/netlify-vercel-cname/img/image.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;优化线路：电信走香港，移动走韩国，联通走日本，可以做到全国大多数地区延迟 100ms 以内。&lt;/p&gt;
&lt;p&gt;仅需将cname解析到&lt;code&gt;cdn.netlify.zhangdi.net&lt;/code&gt;即可。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;优化后线路&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zdsr.cn/post/2024/netlify-vercel-cname/img/image-1.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;2-vercel-优选&#34;&gt;2. Vercel 优选&lt;/h2&gt;
&lt;p&gt;Vercel 默认解析到 Anycast 泛播类型节点，同样电信线路对于 Anycast 延迟也较高，重点仍然优化电信线路。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;默认线路&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zdsr.cn/post/2024/netlify-vercel-cname/img/image-2.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;优化线路：电信走台湾省，移动走香港，联通走台湾省，可以做到全国延迟 100ms 以内。&lt;/p&gt;
&lt;p&gt;仅需将 cname 解析到&lt;code&gt;cdn.vercel.zhangdi.net&lt;/code&gt;即可。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;优化后线路&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zdsr.cn/post/2024/netlify-vercel-cname/img/image-3.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>a bytes-like object is required, not &#39;str&#39;</title>
      <link>https://blog.zdsr.cn/post/2020/python3-bytes-like/</link>
      <pubDate>Mon, 25 May 2020 12:05:26 +0800</pubDate>
      <guid>https://blog.zdsr.cn/post/2020/python3-bytes-like/</guid>
      <description>&lt;p&gt;往往python2能运行，到python3就会报这个错误，这是编解码时的问题，python3是bytes-like。在进行字符串操作时，我们只需要转换一下就可以了。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;# bytes object&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  b &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;b&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;example&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;# str object&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  s &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;example&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;# str to bytes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  bytes(s, encoding &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;utf8&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;# bytes to str&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  str(b, encoding &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;# an alternative method&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;# str to bytes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  str&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;encode(s)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;# bytes to str&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  bytes&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;decode(b)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;参考文章：https://blog.csdn.net/csu_vc/article/details/78372932&lt;/p&gt;</description>
    </item>
    <item>
      <title>硬盘分区表丢失与恢复记录</title>
      <link>https://blog.zdsr.cn/post/2020/data-recovery/</link>
      <pubDate>Wed, 18 Mar 2020 12:24:24 +0800</pubDate>
      <guid>https://blog.zdsr.cn/post/2020/data-recovery/</guid>
      <description>&lt;p&gt;硬盘文件丢失，重中之重千万不要往硬盘写入任何数据！这次我遇到的是硬盘分区表丢失。跟大家一样，首先想到的是用DiskGenius的重建分区表功能，但是很不幸，DiskGenius并不是万能的（不如说是恢复能力有限）。
&lt;img alt=&#34;diskgeniux&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zdsr.cn/post/2020/data-recovery/img/2003188e6a7cce29427.png&#34;&gt;
&lt;img alt=&#34;失败了&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zdsr.cn/post/2020/data-recovery/img/2003183a11064df7a93.png&#34;&gt;
然后在百度搜索了很多数据恢复的软件，基本上都只有简单的恢复功能，不能原样恢复，直到我发现了EasyRecovery，这款软件让我有了恢复的信心。
&lt;img alt=&#34;EasyRecovery&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zdsr.cn/post/2020/data-recovery/img/2003183b896fd350978.png&#34;&gt;
&lt;img alt=&#34;成功恢复&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zdsr.cn/post/2020/data-recovery/img/200318d615cbbe4419d.png&#34;&gt;
话不多说，下载链接在这，&lt;a href=&#34;https://www.lanzoui.com/iae3dpa&#34;&gt;https://www.lanzoui.com/iae3dpa&lt;/a&gt;。
懒得介绍，看图说话，强大就完事儿。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ossfs挂载OSS的权限问题</title>
      <link>https://blog.zdsr.cn/post/2019/ossfs-mount-oss/</link>
      <pubDate>Wed, 21 Aug 2019 09:45:21 +0800</pubDate>
      <guid>https://blog.zdsr.cn/post/2019/ossfs-mount-oss/</guid>
      <description>&lt;p&gt;在使用ossfs挂载阿里云OSS时，默认挂载目录权限为700，导致nextcloud等应用无法访问挂载的外部存储，现在只需要将执行命令加 &lt;code&gt;-o allow_other&lt;/code&gt; ，允许非root用户操作，避免因权限问题导致无法操作oss目录。&lt;/p&gt;
&lt;p&gt;使用举例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ossfs zdsr-cloud /tmp/ossfs -ourl&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;http://oss-cn-shanghai-internal.aliyuncs.com -o allow_other
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果使用了BT阿里云OSS挂载工具，就进入&lt;code&gt;/www/server/panel/plugin/ossfs&lt;/code&gt;，找到&lt;code&gt;ossfs_main.py&lt;/code&gt;，将34行&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;registy &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; get&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;registy&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;strip()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;改为&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;registy &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; get&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;registy&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;strip()&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; -o allow_other&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>图片压缩方法</title>
      <link>https://blog.zdsr.cn/post/2019/photo-compress/</link>
      <pubDate>Tue, 28 May 2019 21:27:19 +0800</pubDate>
      <guid>https://blog.zdsr.cn/post/2019/photo-compress/</guid>
      <description>&lt;h4 id=&#34;1软件本地压缩-推荐&#34;&gt;1.软件本地压缩 （推荐）&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;NXPowerLite Desktop&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;此方法速度快，效果好，非常推荐。&lt;br&gt;
典型安装即可，注册时，用户名可以任意，这里提供序列号：RWLMF-3ASA5-WTJBK-QZYUT-AHNUB；序列号：2Y74A-M83FH-SYUPK-YBXL9-GX4DZ3。&lt;br&gt;
官网下载：&lt;a href=&#34;https://redirect.neuxpower.com/latest/setup&#34;&gt;NXPowerLite Desktop&lt;/a&gt;&lt;br&gt;
软件截图
&lt;img alt=&#34;NXPowerLite &#34; loading=&#34;lazy&#34; src=&#34;https://blog.zdsr.cn/post/2019/photo-compress/img/5ced35e63d16f.png&#34;&gt;
&lt;img alt=&#34;NXPowerLite &#34; loading=&#34;lazy&#34; src=&#34;https://blog.zdsr.cn/post/2019/photo-compress/img/5ced35e632bae.png&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;2网页在线压缩&#34;&gt;2.网页在线压缩&lt;/h4&gt;
&lt;p&gt;TinyPNG &lt;a href=&#34;https://tinify.cn/&#34;&gt;https://tinify.cn/&lt;/a&gt;&lt;br&gt;
智图（腾讯开发） &lt;a href=&#34;https://zhitu.isux.us/&#34;&gt;https://zhitu.isux.us/&lt;/a&gt;&lt;br&gt;
Squoosh（Google开发） &lt;a href=&#34;https://squoosh.app/&#34;&gt;https://squoosh.app/&lt;/a&gt;&lt;br&gt;
compressjpeg &lt;a href=&#34;https://compressjpeg.com/zh/&#34;&gt;https://compressjpeg.com/zh/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>typecho代码高亮插件在pjax下重载</title>
      <link>https://blog.zdsr.cn/post/2019/typecho-code-highlight-pjax/</link>
      <pubDate>Wed, 08 May 2019 17:48:02 +0800</pubDate>
      <guid>https://blog.zdsr.cn/post/2019/typecho-code-highlight-pjax/</guid>
      <description>&lt;p&gt;CodeHighlighter-for-Typecho代码高亮插件重载代码，由于该插件基于&lt;code&gt;prism.js&lt;/code&gt;，则进行以下操作。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;/body&amp;gt;&lt;/code&gt; 标签前添加：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;script&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;text/javascript&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$&lt;/span&gt;(document).&lt;span style=&#34;color:#a6e22e&#34;&gt;on&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;pjax:complete&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;typeof&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Prism&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;!==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;undefined&amp;#39;&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;Prism&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;highlightAll&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/script&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;highlight.js&lt;/code&gt;ajax重载代码&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;script&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;text/javascript&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$&lt;/span&gt;(document).&lt;span style=&#34;color:#a6e22e&#34;&gt;on&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;pjax:complete&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    document.&lt;span style=&#34;color:#a6e22e&#34;&gt;querySelectorAll&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;pre code&amp;#39;&lt;/span&gt;).&lt;span style=&#34;color:#a6e22e&#34;&gt;forEach&lt;/span&gt;((&lt;span style=&#34;color:#a6e22e&#34;&gt;block&lt;/span&gt;) =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;hljs&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;highlightBlock&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;block&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    });
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/script&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>让typecho支持emoji表情</title>
      <link>https://blog.zdsr.cn/post/2019/typecho-emoji/</link>
      <pubDate>Mon, 11 Feb 2019 10:39:25 +0800</pubDate>
      <guid>https://blog.zdsr.cn/post/2019/typecho-emoji/</guid>
      <description>&lt;p&gt;Typecho默认不支持emoji表情，是由于数据库编码的问题，只需要将默认的数据库编码utf8修改为utf8mb4，utf8mb4编码只有在PHP5.5以后才支持。&lt;br&gt;
Emoji就是一种在Unicode位于u1F601-u1F64F区段的字符。这个显然超过了目前常用的UTF-8字符集的编码范围u0000-uFFFF。在 MySQL 中，UTF-8只支持最多 3 个字节，而 emoji 是 4 个字节！&lt;/p&gt;
&lt;h4 id=&#34;1修改typecho数据库编码&#34;&gt;1.修改Typecho数据库编码&lt;/h4&gt;
&lt;p&gt;在PhpMyadmin中选择（鼠标左键点一下）typecho数据库，操作&amp;ndash;&amp;gt;排序规则&amp;ndash;&amp;gt;选择utf8mb4_unicode_ci 然后点执行。&lt;/p&gt;
&lt;h4 id=&#34;2修改typecho数据库表编码&#34;&gt;2.修改Typecho数据库表编码&lt;/h4&gt;
&lt;p&gt;执行以下sql语句:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;alter&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;table&lt;/span&gt; typecho_comments &lt;span style=&#34;color:#66d9ef&#34;&gt;convert&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;to&lt;/span&gt; character &lt;span style=&#34;color:#66d9ef&#34;&gt;set&lt;/span&gt; utf8mb4 &lt;span style=&#34;color:#66d9ef&#34;&gt;collate&lt;/span&gt; utf8mb4_unicode_ci;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;alter&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;table&lt;/span&gt; typecho_contents &lt;span style=&#34;color:#66d9ef&#34;&gt;convert&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;to&lt;/span&gt; character &lt;span style=&#34;color:#66d9ef&#34;&gt;set&lt;/span&gt; utf8mb4 &lt;span style=&#34;color:#66d9ef&#34;&gt;collate&lt;/span&gt; utf8mb4_unicode_ci;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;alter&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;table&lt;/span&gt; typecho_fields &lt;span style=&#34;color:#66d9ef&#34;&gt;convert&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;to&lt;/span&gt; character &lt;span style=&#34;color:#66d9ef&#34;&gt;set&lt;/span&gt; utf8mb4 &lt;span style=&#34;color:#66d9ef&#34;&gt;collate&lt;/span&gt; utf8mb4_unicode_ci;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;alter&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;table&lt;/span&gt; typecho_metas &lt;span style=&#34;color:#66d9ef&#34;&gt;convert&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;to&lt;/span&gt; character &lt;span style=&#34;color:#66d9ef&#34;&gt;set&lt;/span&gt; utf8mb4 &lt;span style=&#34;color:#66d9ef&#34;&gt;collate&lt;/span&gt; utf8mb4_unicode_ci;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;alter&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;table&lt;/span&gt; typecho_options &lt;span style=&#34;color:#66d9ef&#34;&gt;convert&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;to&lt;/span&gt; character &lt;span style=&#34;color:#66d9ef&#34;&gt;set&lt;/span&gt; utf8mb4 &lt;span style=&#34;color:#66d9ef&#34;&gt;collate&lt;/span&gt; utf8mb4_unicode_ci;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;alter&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;table&lt;/span&gt; typecho_relationships &lt;span style=&#34;color:#66d9ef&#34;&gt;convert&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;to&lt;/span&gt; character &lt;span style=&#34;color:#66d9ef&#34;&gt;set&lt;/span&gt; utf8mb4 &lt;span style=&#34;color:#66d9ef&#34;&gt;collate&lt;/span&gt; utf8mb4_unicode_ci;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;alter&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;table&lt;/span&gt; typecho_users &lt;span style=&#34;color:#66d9ef&#34;&gt;convert&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;to&lt;/span&gt; character &lt;span style=&#34;color:#66d9ef&#34;&gt;set&lt;/span&gt; utf8mb4 &lt;span style=&#34;color:#66d9ef&#34;&gt;collate&lt;/span&gt; utf8mb4_unicode_ci;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;sql语句说明，可忽略直接复制上面的就好了:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;alter&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;table&lt;/span&gt; typecho_表名 &lt;span style=&#34;color:#66d9ef&#34;&gt;convert&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;to&lt;/span&gt; character &lt;span style=&#34;color:#66d9ef&#34;&gt;set&lt;/span&gt; utf8mb4 &lt;span style=&#34;color:#66d9ef&#34;&gt;collate&lt;/span&gt; utf8mb4_general_ci;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;每一行代表修改一个对应Typecho表的名称！&lt;/p&gt;
&lt;h4 id=&#34;3修改typecho配置文件&#34;&gt;3.修改typecho配置文件&lt;/h4&gt;
&lt;p&gt;Typecho网站根目录目录打开&lt;code&gt;config.inc.php&lt;/code&gt;文件修改如下:&lt;br&gt;
&lt;code&gt;&#39;charset&#39; =&amp;gt; &#39;utf8&#39;&lt;/code&gt;, 改成 &lt;code&gt;&#39;charset&#39; =&amp;gt; &#39;utf8mb4&#39;&lt;/code&gt;,&lt;br&gt;
Typecho正式版本1.1(17.10.30)的第60行！&lt;/p&gt;
&lt;p&gt;emoji表情:&lt;br&gt;
这样typecho就可以使用emoji表情了，很多输入法都有这个表情的，没有的话，直接复制粘贴表情也可以！表情例子演示如下:
😃😄😅😆😉😊😋😎😍😘😗😙😚☺️🙂🤗😇🍏 🍎 🍐 🍊 🍋 🍌 🍉 🍇 🍓 🍈 🍒 🍑 🍍&lt;/p&gt;</description>
    </item>
    <item>
      <title>强行https跳转简易方法</title>
      <link>https://blog.zdsr.cn/post/2019/http-to-https/</link>
      <pubDate>Sun, 20 Jan 2019 23:31:12 +0800</pubDate>
      <guid>https://blog.zdsr.cn/post/2019/http-to-https/</guid>
      <description>&lt;p&gt;Apache方法，修改伪静态文件&lt;code&gt;.htaccess&lt;/code&gt;，增加如下语句
整站跳转&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-htaccess&#34; data-lang=&#34;htaccess&#34;&gt;RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;目录跳转&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-htaccess&#34; data-lang=&#34;htaccess&#34;&gt;RewriteEngine on
RewriteBase /yourfolder
RewriteCond %{SERVER_PORT} !^443$#
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>markdown语法加入上标下标</title>
      <link>https://blog.zdsr.cn/post/2019/markdown-sub-sup/</link>
      <pubDate>Tue, 15 Jan 2019 16:38:26 +0800</pubDate>
      <guid>https://blog.zdsr.cn/post/2019/markdown-sub-sup/</guid>
      <description>&lt;p&gt;写法&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;H&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;sub&lt;/span&gt;&amp;gt;2&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;sub&lt;/span&gt;&amp;gt;O  CO&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;sub&lt;/span&gt;&amp;gt;2&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;sub&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;sup&lt;/span&gt;&amp;gt;10&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;sup&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解析结果&lt;br&gt;
H&lt;!-- raw HTML omitted --&gt;2&lt;!-- raw HTML omitted --&gt;O  CO&lt;!-- raw HTML omitted --&gt;2&lt;!-- raw HTML omitted --&gt;
2&lt;!-- raw HTML omitted --&gt;10&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Helloworld</title>
      <link>https://blog.zdsr.cn/post/2018/start/</link>
      <pubDate>Mon, 01 Oct 2018 13:26:01 +0800</pubDate>
      <guid>https://blog.zdsr.cn/post/2018/start/</guid>
      <description>&lt;p&gt;如果您看到这篇文章,表示您的 blog 已经安装成功.&lt;/p&gt;</description>
    </item>
    <item>
      <title>关于</title>
      <link>https://blog.zdsr.cn/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://blog.zdsr.cn/about/</guid>
      <description>&lt;p&gt;于2018年7月24日上线。&lt;/p&gt;
&lt;h3 id=&#34;联系我&#34;&gt;联系我&lt;/h3&gt;
&lt;p&gt;Email：zdi#live.com #替换为@&lt;/p&gt;
&lt;p&gt;本站采用 Hugo 构建，由 Netlify 集成。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
