ホームページ  >  記事  >  バックエンド開発  >  PHPの文字エンコード変換

PHPの文字エンコード変換

不言
不言オリジナル
2018-03-29 12:46:0518778ブラウズ

この記事では主に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配列エンコード変換例

phpエンコード変換解析

以上がPHPの文字エンコード変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。