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

PHPの文字エンコード変換の問題

WBOY
WBOYオリジナル
2016-07-25 08:53:45899ブラウズ
  1. $string=mb_convert_encoding($string, 文字出力エンコーディング, 元の文字エンコーディング);
コードをコピー

例: Web ページは gbk エンコーディングを使用し、文字列は utf-8 エンコーディングを使用し、変換しますWeb ページの表示エンコードに使用する文字。

  1. echo mb_convert_encoding("php エンコーディング変換", "gbk", "utf-8");
コードをコピー

概要: iconv 変換のない mb_convert_encoding 関数を使用することをお勧めします文字間違い問題。

文字列のエンコーディングを UTF-8 に変換します。 元の文字列のエンコードがわかっていれば、誰もが知っている iconv 関数を使用できますが、元の文字列のエンコードが GBK である場合もあれば、UTF-8 である場合もあります。この方法は使用できません。 文字列エンコーディングの種類を取得したり、元の文字列エンコーディングを自動的に認識するエンコーディング変換機能があれば便利です。 mb_convert_encoding 関数は元の文字列エンコーディングを自動的に識別できる関数であることがわかりましたが、使用中に GBK の一部の漢字が文字化けしてしまうことが判明しました。

その後、PHP マニュアルで is_utf8 関数を見つけ、iconv 関数と組み合わせることで問題は解決されました。

使用されるエンコード変換関数:

  1. function is_utf8($string) {
  2. return preg_match('%^(?:
  3. [x09x0Ax0Dx20-x7E] # ASCII
  4. | [xC2-xDF][x80-xBF] # non -overlong 2-byte
  5. | x80-xBF] # サロゲートを除く
  6. # プレーン 16
  7. )*$%xs', $string);
  8. } // 関数is_utf8
  9. コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。