この記事では主にPHPの文字エンコード変換の方法を紹介しますが、その方法の手順も比較的詳しく記載されていますので、お役に立てれば幸いです。
iconv — 文字列を要求された文字エンコーディングに変換します(PHP 4 >= 4.0.5, PHP 5)
mb_convert_encoding — 文字エンコーディングを変換します(PHP 4 >= 4.0.6, PHP 5)
使用法:
string mb_convert_encoding ( string str, string to_encoding [,mixed from_encoding] )
まず mbstring 拡張ライブラリを有効にし、php.ini の extension=php_mbstring.dll の前にある ; を削除する必要があります
string iconv ( string in_charset, string out_charset , string str )
注:
変換先のエンコーディングを指定することに加えて、2 番目のパラメーターで 2 つの接尾辞を追加することもできます: //TRANSLIT と //IGNORE。
そのうち:
//TRANSLIT は、変換できない文字を自動的に変換します。直接変換される 1 つ以上の近似文字になります。
//IGNORE は変換できない文字を無視し、デフォルトの効果は最初の不正な文字から切り捨てられます。
変換された文字列、または失敗した場合は FALSE を返します。
使用:
1. iconv は文字「-」を gb2312 に変換するときにエラーが発生することがわかりました。ignore パラメーターがないと、この文字に続くすべての文字列を保存できません。この
「-」はどうやってもうまく変換できず出力できません。さらに、mb_convert_encoding にはこのバグはありません
2。mb_convert_encoding は内容に基づいて自動的に識別されますが、実行効率は次のようなものになります。 $str =
mb_convert_encoding( $str,"euc-jp" ,"ASCII,JIS,EUC-JP,SJIS,UTF-8");"ASCII,JIS,EUC-JP,SJIS,UTF-8" の順序の違いによる影響も
違い
3. 通常はiconvを使用します。 mb_convert_encoding関数は、変換後にiconvが正常に表示できない場合にのみ使用してください
from_encodingは変換前の文字コード名で指定します。配列または文字列 - カンマ区切りの
列挙リストを指定できます。指定されていない場合は、
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis) -win");
$str = mb_convert_encoding($str, "EUC-JP', "auto");
例:
$content = iconv("GBK", "UTF-8", $content);
$content = mb_convert_encoding($content, " UTF-8", "GBK");
結論
1. この関数はコンテンツに基づいてエンコーディングを自動的に識別しますが、実行はiconv よりも効率が悪いです
2. 次に、iconv () が文字「-」を gb2312 に変換するとエラーが発生するという話があります。このように、この文字に続くすべての文字列は保存できません。また、mb_convert_encoding() にはこのバグはありません。拡張機能は、拡張ライブラリが有効な場合にのみ使用できます。iconv は PHP の組み込み関数であり、追加の拡張機能は必要ありません。
4. 通常は iconv が使用されますが、元のエンコードが特定できない場合、または変換後に iconv が正常に表示されない場合にのみ、mb_convert_encoding 関数を使用します
以上がPHPの文字エンコード変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。