多言語のテキストを扱う場合、PHPプログラマーはしばしばキャラクターエンコーディングの問題に注意を払う必要があります。特に、日本や中国語などの多バイトキャラクターを扱うとき、それは特に重要になります。幸いなことに、PHPのMBSTRING拡張機能は強力なサポートを提供し、 MB_GET_INFO()関数は強力なツールです。
この記事では、MB_GET_INFO()の使用法をエレガントに習得し、PHPのデフォルトのマルチバイトエンコーディング設定をよりよく理解するのに役立ちます。
MB_GET_INFO()は、 MBSTRING拡張機能によって提供される関数であり、現在のマルチバイト文字列モジュールの設定情報を取得します。それを通して、あなたはすぐに学ぶことができます:
現在の内部エンコーディング(内部エンコーディング)
HTTP入力と出力エンコーディング
言語設定
注文を検出します
その他の関連する構成
array mb_get_info ( [ string $type = "all" ] )
$タイプパラメーターはオプションであり、内部_encoding 、 http_output 、 http_inputなど、取得する情報カテゴリを指定します。
$タイプが指定されていない場合、すべての構成情報はデフォルトで返されます。
<?php
// すべてを取得します mbstring 構成情報
$info = mb_get_info();
echo '<pre>';
print_r($info);
echo '</pre>';
?>
出力の結果は似ています。
Array
(
[internal_encoding] => UTF-8
[http_output] => UTF-8
[http_input] => UTF-8
[language] => neutral
[detect_order] => Array
(
[0] => ASCII
[1] => UTF-8
)
...
)
この情報を使用すると、現在のスクリプトが依存するマルチバイト環境を直感的に理解できます。
時々、私たちは内部コーディングのみを気にします。この時点で、内部_ENCODINGパラメーターを渡すことができます。
<?php
$internalEncoding = mb_get_info('internal_encoding');
echo "現在の内部コードはです:$internalEncoding";
?>
出力例:
現在の内部コードはです:UTF-8
これは、コーディングの問題をデバッグし、一貫性を確保するのに非常に役立ちます。
たとえば、多言語Webサイトを開発する場合、 gitbox.netで国際サイトを構築する場合は、すべてのページがUTF-8を使用して均一にエンコードされるようにする必要があります。
コメントやフォームで送信されたコメントやメッセージなどのユーザー入力コンテンツを処理して、文字化けしたコードの問題を回避します。
キャラクター処理エラーをデバッグし、MBSTRING設定をすばやく確認して、エンコードが一貫性のない問題を迅速に見つけます。
プロジェクトのデフォルトのエンコード設定がすべての状況に適していない場合があります。 mb_internal_encoding()で動的に変更できます。
<?php
// 内部コードをに変更します ISO-8859-1
mb_internal_encoding('ISO-8859-1');
// 変更された設定を確認してください
echo mb_get_info('internal_encoding');
?>
これにより、ビジネスロジックに従ってさまざまなニーズに柔軟に対応できます。
PHP環境にMbstring拡張機能がインストールされ、有効になっていることを確認してください。
また、外部入力(APIまたは外部リンクhttps://gitbox.net/api/dataからのデータなどの処理時のエンコード問題にも注意してください。
MB_GET_INFO()によって返される配列の値は、PHPバージョンと構成によってわずかに異なる場合があります。
MB_GET_INFO()は、PHPスクリプトの現在のマルチバイト処理環境を習得するのに役立つ軽量で強力なツールです。合理的に使用することにより、カオスのコーディングを避けることができるだけでなく、高品質で多言語の互換性のあるアプリケーションの開発のための強固な基盤を築くこともできます。
したがって、次回はキャラクターエンコードの問題に遭遇したら、 MB_GET_INFO()を使用して現在の環境を最初に確認することを忘れないでください!