美文网首页
hexo博客字符乱码解决方案

hexo博客字符乱码解决方案

作者: 卓技卓品 | 来源:发表于2021-11-18 14:02 被阅读0次

现象

今天发现博客中所有的“{”与“}”都成了乱码,效果如下:

public class HomeKeyEventReceiver extends BroadcastReceiver {
    String SYSTEM_REASON = "reason";
    String SYSTEM_HOME_KEY = "homekey";
    String SYSTEM_HOME_KEY_LONG = "recentapps";
    public HomeKeyEventReceiver() {
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) {
            String reason = intent.getStringExtra(SYSTEM_REASON);
            if (TextUtils.equals(reason, SYSTEM_HOME_KEY) || TextUtils.equals(reason, SYSTEM_HOME_KEY_LONG)) {
                //点击HOME键
                LauncherModel.getInstance().getGlobalEventBus().post(new OnHomeClickEvent());
            }
        }
    }
}

这是啥啊,完全看不懂啊。 查资料发现“{”与“}”被转义了。 我是用md文件直接导出html文件,发现显示都是正常的,那么很显然时hexo生成html时对数据进行了转义。

修复

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

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

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

public class HomeKeyEventReceiver extends BroadcastReceiver {
    String SYSTEM_REASON = "reason";
    String SYSTEM_HOME_KEY = "homekey";
    String SYSTEM_HOME_KEY_LONG = "recentapps";
    public HomeKeyEventReceiver() {
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) {
            String reason = intent.getStringExtra(SYSTEM_REASON);
            if (TextUtils.equals(reason, SYSTEM_HOME_KEY) || TextUtils.equals(reason, SYSTEM_HOME_KEY_LONG)) {
                //点击HOME键
                LauncherModel.getInstance().getGlobalEventBus().post(new OnHomeClickEvent());
            }
        }
    }
}

总结

常见的转义符有: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>

相关文章

网友评论

      本文标题:hexo博客字符乱码解决方案

      本文链接:https://www.haomeiwen.com/subject/peidtrtx.html