hexo博客中“{”与“}”乱码解决方法


hexo博客中“{”与“}”乱码解决方法

一、出错原因

  前几天写了一个教程,网友(Treasure)看了之后问我代码为什么出错了,发现博客中所有的“{”与“}”都成了乱码,效果如下:

<script type="text/javascript">
        //只在桌面版网页启用特效
        var windowWidth = $(window).width();
        if (windowWidth > 768) &#123;
            document.write('<script type="text/javascript" src="/js/sakura.js"><\/script>');
        &#125
        </script>

  一开始我还以为是我写错了,结果看我原文件写的是对的,查资料发现“{”与“}”被转义了。 我是用md文件直接导出html文件,发现显示都是正常的,那么很显然时hexo生成html时对数据进行了转义。

二、解决办法

  找到文件:node_modules\hexo-prism-plugin\src\index.js, 在map中添加对应的转义配置,忽略相关转义操作:

const map = {
  '&#39;': '\'',
  '&amp;': '&',
  '&gt;': '>',
  '&lt;': '<',
  '&quot;': '"',
  '&#123;': '{',
  '&#124;': '|',
  '&#125;': '}'
};

  此时再查看博客就正常了。

<script type="text/javascript">
        //只在桌面版网页启用特效
        var windowWidth = $(window).width();
        if (windowWidth > 768) {
            document.write('<script type="text/javascript" src="/js/sakura.js"><\/script>');
        }
        </script>

三、总结

  常见的转义符有:HTML ISO-8859-1 参考手册

! &#33; — 惊叹号
" &#34; &quot; 双引号
# &#35; — 数字标志
$ &#36; — 美元标志
% &#37; — 百分号
& &#38; &amp;  — &符&#39; — 单引号
( &#40; — 小括号左边部分
) &#41; — 小括号右边部分
* &#42; — 星号
+ &#43; — 加号
< &#60; &lt; 小于号
= &#61; — 等于符号
- &#45; &minus; — 减号
> &#62; &gt; 大于号
? &#63; — 问号
@ &#64; — @符
[ &#91; --- 中括号左边部分
\ &#92; --- 反斜杠
] &#93; — 中括号右边部分
{ &#123; — 大括号左边部分
| &#124; — 竖线
} &#125; — 大括号右边部分</pre>

Author: Crazy Yuchi
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Crazy Yuchi !
  TOC