PHP の文字エンコーディングに関する要件
以下の型のエンコーディングが、PHP で安全に使用することができます。
-
シングルバイトエンコーディングで、
-
00h
から7fh
の範囲の文字に関して、 ASCII 互換 (ISO646 互換) のマッピングを有する。
-
-
マルチバイトエンコーディングで、
-
00h
から7fh
の範囲の文字では、 ASCII 互換のマッピングを有する。 - ISO2022 エスケープシーケンスを使用しない。
-
単一の文字を表す複数バイトのいずれにおいても
00h
から7fh
の値を使用しない。
-
PHP で動作しないと思われる文字エンコーディングの例を以下に示します。
JIS, SJIS, ISO-2022-JP, BIG-5
これらのエンコーディングで書かれた PHP スクリプトは、
特に符号化された文字列がスクリプトで記述子やリテラルに使用される場合には、
動作しない可能性がありますが、入力される HTTP クエリに関して
mbstring
の透過的なエンコーディングフィルタを
設定することでこれらのエンコーディングをほとんど使用しないようにすることができます。
注意:
SJIS, BIG5, CP936, CP949, GB18030 は、読者がパーサ/コンパイラ、 文字エンコーディングと文字エンコーディングの問題点について精通していない限り 内部エンコーディングとして使用するべきではありません。
注意:
PHP でデータベースに接続する場合、性能を向上させるためにデータベースと PHP の内部エンコーディングについて同じ文字エンコーディングを使用することを推奨します。
PostgreSQL を使用している場合、 バックエンドの文字エンコーディングと異なる文字エンコーディングを使用することが可能です。 詳細については、PostgreSQL のマニュアルを参照ください。
+add a note
User Contributed Notes
There are no user contributed notes for this page.
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google