歡迎光臨, 訪客. 請先 登入註冊一個帳號.
四月 28, 2024, 07:20:19 上午
19595 文章 在 3865 主題 由 4580 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  開發  |  外掛程式  |  recentcomments的中文断字问题 « 上篇主題 下篇主題 »
頁: [1]
作者 主題: recentcomments的中文断字问题  (閱讀 17595 次)
hzhawk
新手見習
*
文章: 17



檢視個人資料 個人網站
« 於: 三月 11, 2006, 01:55:17 下午 »

我添加了recentcomments插件后,发现在
程式碼:
{$comment->getText()|truncate:100:"..."
指定的100个文字处断字的功能对中文无法正常处理,我试着更改这个值,但都是徒劳的。
如图,ie下因为被错误断字而变成了其他奇怪的字,firefox下变成了怪符号。
请问如何解决!谢谢!
已記錄

宠辱不惊,闲看庭前花开花落;
去留无意,漫随天外云卷云舒。
我的Blog:HzHawk's Life on Net (http://hzhawk.cjlu.edu.cn)
lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #1 於: 三月 11, 2006, 04:35:19 下午 »

請改用 utf8_truncate 取代 truncate

lss
已記錄

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
ming
新手見習
*
文章: 19


檢視個人資料
« 回覆文章 #2 於: 三月 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.
已記錄
lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #3 於: 三月 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
已記錄

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
ming
新手見習
*
文章: 19


檢視個人資料
« 回覆文章 #4 於: 三月 12, 2006, 12:18:56 下午 »

使用mbstring 是會快很多的 微笑
已記錄
lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #5 於: 三月 12, 2006, 02:30:11 下午 »

hi ming:

我也同意使用 mbstring 快很多  微笑

只是有很多虛擬主機的 PHP 並沒有支援 mbstring  傷心 ,我想,這應該是開發團隊的考量吧!

lss
已記錄

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
hzhawk
新手見習
*
文章: 17



檢視個人資料 個人網站
« 回覆文章 #6 於: 三月 15, 2006, 09:58:21 上午 »

多谢两位高手的帮助,两个方法我都试了,最后选了mbstring的方法,的确比utf8_truncate的外部脚本要快一些。
http://hzhawk.cjlu.edu.cn/post/1/37
已記錄

宠辱不惊,闲看庭前花开花落;
去留无意,漫随天外云卷云舒。
我的Blog:HzHawk's Life on Net (http://hzhawk.cjlu.edu.cn)
hzhawk
新手見習
*
文章: 17



檢視個人資料 個人網站
« 回覆文章 #7 於: 三月 17, 2006, 10:09:16 上午 »

又有问题了!
这两天我发现这个中文断字好像不是很稳定,有时正常,又是又会有末位的乱码!
有时刷新一下又好了,有时刷新都不行。
我在后台设定里,模版等的缓存都关掉了。
能不能帮我看看什么问题啊,不行的话我就用utf8_truncate了
已記錄

宠辱不惊,闲看庭前花开花落;
去留无意,漫随天外云卷云舒。
我的Blog:HzHawk's Life on Net (http://hzhawk.cjlu.edu.cn)
ming
新手見習
*
文章: 19


檢視個人資料
« 回覆文章 #8 於: 三月 19, 2006, 09:16:07 下午 »

又有问题了!
这两天我发现这个中文断字好像不是很稳定,有时正常,又是又会有末位的乱码!
有时刷新一下又好了,有时刷新都不行。
我在后台设定里,模版等的缓存都关掉了。
能不能帮我看看什么问题啊,不行的话我就用utf8_truncate了

看不到你的 blog 有這個問題‥

我們用了大半年,也很正常
已記錄
hzhawk
新手見習
*
文章: 17



檢視個人資料 個人網站
« 回覆文章 #9 於: 三月 20, 2006, 07:38:51 上午 »

暂时不知道哪里的问题,我先换成utf8_truncate了,等以后找到问题在哪里再换成mb
已記錄

宠辱不惊,闲看庭前花开花落;
去留无意,漫随天外云卷云舒。
我的Blog:HzHawk's Life on Net (http://hzhawk.cjlu.edu.cn)
hzhawk
新手見習
*
文章: 17



檢視個人資料 個人網站
« 回覆文章 #10 於: 三月 22, 2006, 04:01:59 下午 »

现在是真的搞定mbstring了
我重新设置了php.ini里的mbstring
默认设置是:
程式碼:
;mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP
;mbstring.http_output = SJIS
我曾经把注释去掉,设置成了:
程式碼:
mbstring.language = Chinese
mbstring.internal_encoding = GBK
mbstring.http_output = GBK
今天在网页上用phpinfo看了看,发现mbstring.language=neutral,也就是说,语言设置错误了,我就重新改了改配置,改成了:
程式碼:
mbstring.language = Simplified Chinese
mbstring.internal_encoding = UTF8
mbstring.http_output = UTF8
顺便把内部编码和输出编码全都改成UTF8,现在就正常了,在phpinfo里看,mbstring.language=Simplified Chinese了。我不知道我前段时间mbstring有问题是因为语言设置错误还是因为编码不一致造成的,高手能不能解说一下。谢谢!
已記錄

宠辱不惊,闲看庭前花开花落;
去留无意,漫随天外云卷云舒。
我的Blog:HzHawk's Life on Net (http://hzhawk.cjlu.edu.cn)
頁: [1]
LifeType 中文開發論壇  |  開發  |  外掛程式  |  recentcomments的中文断字问题 « 上篇主題 下篇主題 »
    前往: