在使用PHP處理字元串時,我們經常會碰到字元編碼轉換的問題,一般都是用iconv進行轉碼的,但是iconv也不是萬能的,碰到一些生僻字就會無法轉換,如果配置了第二個參數,可以稍微彌補一下預設缺陷,不至于無法轉換,用法如下
這樣碰到生僻字轉換失敗時,它就會忽略失敗,繼續轉換下面的内容。
還有一個轉碼函數:mb_convert_encoding,他的轉換成功率比iconv高,但是有利就有弊,他的轉碼速率比較低,另外這個函數還可以省略第三個參數,自動識别内容編碼,但是影響效率,還需要注意的是,mb_convert_encoding和iconv參數順序不一樣,一定要注意。
附兩個函數簡單的用法:
iconv
string iconv ( string $in_charset , string $out_charset , string $str )
第一個參數:内容原的編碼
第二個參數:目标編碼
第三個參數:要轉的字元串
函數傳回字元串
<?php
$instr = ‘測試’;
// GBK轉UTF-8
$outstr = iconv(‘GBK’,'UTF-8′,$instr);
?>
mb_convert_encoding
string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )
第一個參數:要處理的字元串
第二個參數:目标編碼
第三個參數:内容原編碼
<?php
$instr = '測試';
// GBK轉UTF-8
$outstr = mb_convert_encoding($instr,'UTF-8','GBK',);
?>
如果系統對效率要求不是很高、系統資源充足且要轉碼的内容常有生僻字出現的情況下建議選用mb_convert_encoding比較保險。