2008年5月6日星期二

Gregarius编辑feed时中文乱码的解决

编辑feeds的时候,中文总是乱码(版本r1787),其实解决方法很简单的:

找到admin/channels.这个文件,找到第900行,修改为:

//$title = htmlentities($title,ENT_QUOTES); $title = htmlspecialchars($title, ENT_QUOTES); 

这个是标题乱码的修正,再向下翻到Description部分,大概在988行左右,修改为:

// Description //$descr = trim(htmlentities(strip_tags($descr), ENT_QUOTES)); $descr = trim(htmlspecialchars(strip_tags($descr), ENT_QUOTES)); 

这样就ok了。

原因很简单,htmlentities这个函数在转义到html标记的时候,会吧中文字符中一些字节也进行了转义,形成了乱码,而htmlspecialchars这个函数只转义特定的5个字符,不会存在这种情况。

之后,单引号和双引号都能输入了,但是反斜杠\仍然是不能输入的,应该是在输入处理的时候过滤掉了,或者进行了其他的转换,不过一般也用不到,就不改了。西文环境用户的处理习惯就是和我们不大一样啊。

参考

Tags: , , , , ,

Related posts

Source: http://www.fwolf.com/blog/post/399