0
我知道mb_是處理UTF8字符,但它不會解決我的問題。php,mb_substr殺死Unicode字符
所以我有這個字符串:
óóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó
mb_substr ($oooo, 0,17, 'UTF-8');
óóóóóóóóóóóóóóóóó& OAC
所以最後一個字符damag ES。
我知道mb_是處理UTF8字符,但它不會解決我的問題。php,mb_substr殺死Unicode字符
所以我有這個字符串:
óóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó
mb_substr ($oooo, 0,17, 'UTF-8');
óóóóóóóóóóóóóóóóó& OAC
所以最後一個字符damag ES。
你的字符串不實際上
$str = 'óóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó';
您的字符串實際上是:
$str = 'óóóóóóóó...';
當在瀏覽器看,瀏覽器當然會呈現「O」,但是這是對PHP沒有興趣。
最好的解決方案是讓你的內容進入實際的UTF-8編碼字符「óóóóóóóóóóóóóóó」,然後使用你的代碼。要對您的當前字符串這項工作,您需要將HTML實體首先解碼:
$str = 'óóóóóóóó...';
$str = html_entity_decode($str, ENT_COMPAT, 'UTF-8');
echo mb_substr($str, 0, 17, 'UTF-8');
你會那麼當然需要採取的輸出編碼的小心,因爲你現在實際輸出UTF-8瀏覽器需要了解的內容。請參閱UTF-8 all the way through。
請檢查(和張貼)您的字符串包含哪些**字節**。看起來,這些「ó」中的至少一些實際上是實體轉義的結果,而不是unicode代碼點U + 00F3(in *任何*編碼)。 – delnan
提示:PHP不會呈現HTML。 –
delnan,怎麼樣? –