主題: recentcomments的中文断字问题 作者: hzhawk 於 三月 11, 2006, 01:55:17 下午 我添加了recentcomments插件后,发现在
程式碼: {$comment->getText()|truncate:100:"..." 如图,ie下因为被错误断字而变成了其他奇怪的字,firefox下变成了怪符号。 请问如何解决!谢谢! 主題: Re: recentcomments的中文断字问题 作者: lss 於 三月 11, 2006, 04:35:19 下午 請改用 utf8_truncate 取代 truncate
lss 主題: Re: recentcomments的中文断字问题 作者: ming 於 三月 11, 2006, 09:42:49 下午 from lance:
http://www.lazylee.org/weblog/archives/cae/plogaee/index.html 解决方法: 1. PHP 打开 mbstring 支持。重新编译PHP,增加 '--enable-mbstring=all' '--enable-mbregex'选项。 2. 给 Smarty 添加新的 modifier:mb_truncate。在 Smarty 的 plugins 子目录中添加 modifier.mb_truncate.php 文件,内容基本与 modifier.truncate.php 相同,只是把 strlen 和 substr 更改为 mb_strlen 和 mb_substr,并指定字符集为 UTF-8,同时修改函数名。原truncate中的第三个参数被废除(默认为原来的true模式),因为它是基于preg_replace的实现,但 mb系列没有对应函数。 3. 修改模板中相应部分,把需要用到 truncate 的地方改成 mb_truncate. 主題: Re: recentcomments的中文断字问题 作者: lss 於 三月 12, 2006, 12:04:09 上午 hi ming:
很抱歉下午回文時較趕時間,沒有仔細說明。 :-) lifetype 所使用的 smarty 裡已經有一個 modifier.utf8_truncate.php 提供 utf8_trancate 修飾子來處理 utf8 字串的斷句。 使用的 utf8 字串函數在 class/data/utf8/utf8_funcs.php ,而且即使 php 沒有支援 mbstring 模組也可以使用哦。 lss 主題: Re: recentcomments的中文断字问题 作者: ming 於 三月 12, 2006, 12:18:56 下午 使用mbstring 是會快很多的 :-)
主題: Re: recentcomments的中文断字问题 作者: lss 於 三月 12, 2006, 02:30:11 下午 hi ming:
我也同意使用 mbstring 快很多 :-) 只是有很多虛擬主機的 PHP 並沒有支援 mbstring :-( ,我想,這應該是開發團隊的考量吧! lss 主題: Re: recentcomments的中文断字问题 作者: hzhawk 於 三月 15, 2006, 09:58:21 上午 多谢两位高手的帮助,两个方法我都试了,最后选了mbstring的方法,的确比utf8_truncate的外部脚本要快一些。
http://hzhawk.cjlu.edu.cn/post/1/37 主題: Re: recentcomments的中文断字问题 作者: hzhawk 於 三月 17, 2006, 10:09:16 上午 又有问题了!
这两天我发现这个中文断字好像不是很稳定,有时正常,又是又会有末位的乱码! 有时刷新一下又好了,有时刷新都不行。 我在后台设定里,模版等的缓存都关掉了。 能不能帮我看看什么问题啊,不行的话我就用utf8_truncate了 主題: Re: recentcomments的中文断字问题 作者: ming 於 三月 19, 2006, 09:16:07 下午 又有问题了! 这两天我发现这个中文断字好像不是很稳定,有时正常,又是又会有末位的乱码! 有时刷新一下又好了,有时刷新都不行。 我在后台设定里,模版等的缓存都关掉了。 能不能帮我看看什么问题啊,不行的话我就用utf8_truncate了 看不到你的 blog 有這個問題‥ 我們用了大半年,也很正常 主題: Re: recentcomments的中文断字问题 作者: hzhawk 於 三月 20, 2006, 07:38:51 上午 暂时不知道哪里的问题,我先换成utf8_truncate了,等以后找到问题在哪里再换成mb
主題: Re: recentcomments的中文断字问题 作者: hzhawk 於 三月 22, 2006, 04:01:59 下午 现在是真的搞定mbstring了
我重新设置了php.ini里的mbstring 默认设置是: 程式碼: ;mbstring.language = Japanese 程式碼: mbstring.language = Chinese 程式碼: mbstring.language = Simplified Chinese |