PHP iconv と mb_convert_encoding の違い

WBOY
リリース: 2016-06-13 12:55:32
オリジナル
1060 人が閲覧しました

PHP iconv と mb_convert_encoding
の違い

PHP は文字をトランスコードするときに iconv 関数をよく使用しますが、特定のトランスコード中に問題が発生しました。

例:

$str = '今日の天気 - 晴れ';

$str = iconv('UTF-8','GBK',$str,);

トランスコード後、$str は確かに「今日の天気は晴れです」だけです。マニュアルを見ると、iconv の 2 番目のパラメータで 2 つのサフィックス

?

?//TRANSLIT は、直接変換できない文字を 1 つ以上の近似文字に自動的に変換します。

?//IGNORE は変換できない文字を無視し、デフォルトの効果は最初の不正な文字から切り捨てられます。

?

使用:

1. iconv は文字「-」を gb2312 に変換するときにエラーが発生することがわかりました。ignore パラメーターがないと、この文字に続くすべての文字列を保存できません。この「-」はどうやってもうまく変換できず出力できません。 なお、mb_convert_encoding にはこのバグはありません。

2. mb_convert_encoding は複数の入力エンコーディングを指定できますが、実行効率は iconv よりもはるかに悪くなります。

3. 通常の状況では、iconv を使用します。mb_convert_encoding 関数は、元のエンコーディングが特定できない場合、または変換後に iconv が正常に表示されない場合にのみ使用してください。

注: mb_convert_encoding を使用するには、php.ini でこの拡張機能を有効にする必要があります

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート