以下の型のエンコーディングが、PHP で安全に使用することができます。
シングルバイトエンコーディングで、
00h
から 7fh
の範囲の文字に関して、
ASCII 互換 (ISO646 互換) のマッピングを有する。
マルチバイトエンコーディングで、
00h
から 7fh
の範囲の文字では、
ASCII 互換のマッピングを有する。
00h
から 7fh
の値を使用しない。
PHP で動作しないと思われる文字エンコーディングの例を以下に示します。
JIS, SJIS, ISO-2022-JP, BIG-5
これらのエンコーディングで書かれた PHP スクリプトは、
特に符号化された文字列がスクリプトで記述子やリテラルに使用される場合には、
動作しない可能性がありますが、入力される HTTP クエリに関して
mbstring
の透過的なエンコーディングフィルタを
設定することでこれらのエンコーディングをほとんど使用しないようにすることができます。
注意:
SJIS, BIG5, CP936, CP949, GB18030 は、読者がパーサ/コンパイラ、 文字エンコーディングと文字エンコーディングの問題点について精通していない限り 内部エンコーディングとして使用するべきではありません。
注意:
PHP でデータベースに接続する場合、性能を向上させるためにデータベースと PHP の内部エンコーディングについて同じ文字エンコーディングを使用することを推奨します。
PostgreSQL を使用している場合、 バックエンドの文字エンコーディングと異なる文字エンコーディングを使用することが可能です。 詳細については、PostgreSQL のマニュアルを参照ください。