现象
今天发现博客中所有的“{”与“}”都成了乱码,效果如下:
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 = {
''': '\'',
'&': '&',
'>': '>',
'<': '<',
'"': '"',
'{': '{',
'|': '|',
'}': '}'
};
此时再查看博客就正常了。
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 参考手册
! ! — 惊叹号
" " " 双引号
# # — 数字标志
$ $ — 美元标志
% % — 百分号
& & & — &符
‘ ' — 单引号
( ( — 小括号左边部分
) ) — 小括号右边部分
* * — 星号
+ + — 加号
< < < 小于号
= = — 等于符号
- - − — 减号
> > > 大于号
? ? — 问号
@ @ — @符
[ [ --- 中括号左边部分
\ \ --- 反斜杠
] ] — 中括号右边部分
{ { — 大括号左边部分
| | — 竖线
} } — 大括号右边部分</pre>








网友评论