首页 › 程序设计 › php

关于使用Markdown解析器Parsedown应该注意的编码问题

泡在网上的日子 / 文 发表于2017-01-19 02:12 次阅读 Markdown

使用 Parsedown 来解析Markdown文本的时候,出现了一个很奇怪的问题:

添加代码块的时候不允许添加 ··· ,在xml文件里不能添加注释 ,否则此段代码块中的内容会被吃掉

下面是一个问题文本的例子

总结一下以前自定义字体的方法

1 .**通过findViewById找到view,然后一个个的去设置字体**

```java
Typeface customFont = Typeface.createFromAsset(this.getAssets(), "fonts/customFont.ttf");
TextView view = (TextView) findViewById(R.id.text);
view.setTypeface(customFont);
···
```

于是我把出现问题的markdown文本放在了Parsedown 的在线测试中去测试,发现解析完全正常。

wtf,这可如何是好!!

只能在Parsedown项目的issue中一条条的翻,翻到了一条疑似靠谱的:https://github.com/erusev/parsedown/issues/389 ,回复中有人提到了编码问题,大致是说这样做就可以了

echo $url = iconv("UTF-8","ISO-8859-1//TRANSLIT//IGNORE",$texto->text($url));

恩,照着做,结果出现了乱码。。。。

其实直觉告诉我肯定会出错的。

但是我基本锁定了就是编码问题。

于是看Parsedown的源码,发现所有的htmlspecialchars函数都是用的utf-8编码,而服务器全是GBK的编码,于是,我把所有utf-8都替换成了GB2312,注意必须是GB2312,而不是GBK。

改完之后赶紧测试,发现上面的问题不再出现了。

大功告成!!

收藏 赞 (0) 踩 (0)
上一篇:PHP关于反斜杠处理函数addslashes()和stripslashes()的用法
PHP自带的库函数 addslashes() 和 stripslashes() 都属于字符串处理类函数,作用正好相反: addslashes():对输入字符串中的某些预定义字符前添加反斜杠,这样处理是为了数据库查询语句等的需要。这些预定义字符是:单引号(),双引号(),反斜杠(\),NULL。st
下一篇:细说PHP中strlen和mb_strlen的区别
在PHP中,strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别。 下面通过例子,讲解这两者之间的区别。 先看例子: ?php//测试时文件的编码方式要是UTF8$str=中文a字1符;echostrlen($str).br;//14echomb