我在網路上找到這個函數,稍微改了一下,如果轉不出來的函數,就會變空白,然後繼續轉換字串中所有的字元。
請享用。
function big52utf8($big5str) {
$blen = strlen($big5str);
$utf8str = "";
for($i=0; $i<$blen; $i++) {
$sbit = ord(substr($big5str, $i, 1));
//echo $sbit;
//echo "
";
if ($sbit < 129) {
$utf8str.=substr($big5str,$i,1);
}elseif ($sbit > 128 && $sbit < 255) {
$new_word = iconv("big5", "UTF-8", substr($big5str,$i,2));
$utf8str.=($new_word=="")?" ":$new_word;
$i++;
}
}
return $utf8str;
}
摘自:http://dev.sopili.net/2009/08/phpbig5utf8iconv.html
3 則留言:
iconv 會讓你知道那個位置的字沒辦法轉才是正確的啊,不告訴 user 哪裡有問題不太好
他不責任是因為他遇到轉不出來的字,就停住了!
你的網頁的執行會因為iconv轉不出來而停住,這就是不太好的問題
你如果要忽略轉不出來的碼,iconv 有 -c 可以用。但我不覺得網頁因為 iconv 轉不出來就停住所以就用 -c 是好理由, 除非轉不出來的字可以不理會。
張貼留言