ホームページ  >  記事  >  バックエンド開発  >  PHPエンコード変換関数の応用スキルを語る_PHPチュートリアル

PHPエンコード変換関数の応用スキルを語る_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:34:461078ブラウズ

では、Webページの文字化けの問題を解決するために、必要に応じてエンコード変換(GB2312エンコード環境でAjaxを使用することによって引き起こされる漢字文字化けの問題の解決など)を簡単に行うことができ、非常に便利です。非常に効率的に使用でき、ほぼすべてのエンコーディングをサポートします。 PHP 4 >= 4.0.6、PHP 5 バージョンがサポートされています。

PHPエンコード変換関数プロトタイプ:

  1. /**
  2. * マルチバイト文字列エンコード変換関数
  3. *
  4. * @param string str は次のようにする必要がありますエンコーディングが変換された文字列
  5. * @param string to_encoding は、gb2312、gbk、utf-8 などの特定のエンコーディング
  6. への変換を指定します。
  7. * @parammixed from_encodingmixed は、元の文字列
  8. 、 例: JIS、eucjp-win、sjis-win 混合エンコーディングを同時に指定
  9. * @return string
  10. string mb_convert_encoding (string
  11. str, string to_encoding [,mixed from_encoding] )
PHP エンコード変換 関数の使用例:

1. GBK エンコード文字列を UTF-8 エンコード文字列に変換します

<ol class="dp-xml"><li class="alt">
<span class="tag"><</span> ?PHP   </li><li><span>header("content-Type: text/html; <br /></span><span class="attribute">charset</span><span>=</span><span class="attribute-value">Utf</span><span>-8");   </span></li><li class="alt"><span>echo mb_convert_encoding("<br />你是我的好朋友", "UTF-8", "GBK");   </span></li><li><span class="tag">?></span><span>  </span>
</li></ol>

2. UTF-8 エンコード文字列を GB2312 エンコード文字列に変換します

<ol class="dp-xml">
<li class="alt"><span><span>// 注意将此文件存盘成 utf-8 <br>编码格式文件再测试   </span></span></li>
<li>
<span class="tag"><</span><span> ?</span>PHP<span>   </span></li><li class="alt"><span>header("content-Type: text/html; <br /></span><span class="attribute">charset</span><span>=</span><span class="attribute-value">gb2312</span><span>");   </span></li><li><span>echo mb_convert_encoding("<br />你是我的好朋友", "gb312", "utf-8");   </span></li><li class="alt"><span class="tag">?></span><span>  </span>
</li>
</ol>

3.ページ全体

この方法は、すべてのコーディング環境に適しています。このように、最初の 128 文字(表示文字)以外の文字セットは NCR で表現されます(「漢字」などの数字参照は「汉字」の形式に変換されます)。このエンコーディングは、どのコーディング環境でもページを正常に表示できます。

次の 3 行のコードを PHP ファイルの先頭に追加します。

<ol class="dp-xml">
<li class="alt"><span><span>mb_internal_encoding("gb2312");   </span></span></li>
<li><span>// 这里的gb2312是你网站原来的编码   </span></li>
<li class="alt"><span>mb_http_output("HTML-ENTITIES"); ob_start('mb_output_handler');   </span></li>
</ol>

mb_convert_encoding 関数を使用するには、PHP の mbstring (マルチバイト文字列) 拡張機能を有効にする必要があります。

PHP の mbstring 拡張機能が有効になっていない場合は、PHP が拡張機能をサポートするように次の設定を行う必要があります。

1. Windowsサーバー環境

PHP.iniファイルを編集し、extension=PHP_mbstring.dllの前の;を削除し、Webサーバーを再起動します。

2. Linux サーバー環境

設定をコンパイルするときに --enable-mbstring=cn コンパイル パラメーターを追加し、PHP をコンパイルしてインストールします。

まとめ:

PHPのエンコード変換機能を使用する際に分からないことがあれば、「PHPマニュアル」を参照してください。


http://www.bkjia.com/PHPjc/445953.html

tru​​ehttp://www.bkjia.com/PHPjc/445953.html技術記事ウェブページの文字化け問題を解決するために、必要に応じてエンコード変換を行うと便利です(GB2312エンコード環境でAjaxを使用することによる中国語の文字化けの問題の解決など)。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。