這是我的問題:我的語言(葡萄牙語)使用ISO-8859-1字符編碼!當我想從像「科拉桑」(心臟),我用一個字符串訪問字符:有很簡單的方法來從PHP中的多字節字符串中獲取一個字符?
mb_internal_encoding('ISO-8859-1');
$str = "coração";
$len = mb_strlen($str,'UTF-8');
for($i=0;$i<$len;++$i)
echo mb_substr($str, $i, 1, 'UTF-8')."<br/>";
這將產生:
c o r a ç ã o
這工作得很好。但我的問題是,如果使用mb_substr函數不是像簡單字符串那樣快速正常訪問!但我想要一個簡單的方法來做到這一點....就像在正常的字符串字符訪問:echo $ str [$ pos] ....這是可能的嗎?
嗯...但我的問題是關於一個有效的方式做這些訪問。我測試了一個正常的字符串連接循環($ new_str。= $ old_str [2] - 僅用於測試...)和使用mb_substr($ new_str。= mb_substr($ old_str,2,1,'UTF-8')和I (循環50 000次迭代):0.016 s到4.9802091121674 s到mb_substr函數的正常訪問!這是一個很大的性能問題! – 2012-04-28 05:20:43
使用固定寬度的編碼,你可以使用一個固定的乘法器 – 2012-04-28 05:21:53
我該怎麼做呢?給我舉一個例子! – 2012-04-28 05:22:52