PHP:文字エンコーディングを意識する
※ 参考:書籍:プロになるためのPHPプログラミング入門
※ 環境:PHP 8.3
1.4.4 文字エンコーディング関連の設定を行う方法 (p.40)
php.iniの設定
マルチバイトに関する主な設定項目
◆ mbstring.language
◆ mbstring.internal_encoding
◆ internal_encoding
◆ default_charset
これは mb_send_mail() と mbstring.detect_order に影響します。
◆ mbstring.internal_encoding
この INI エントリの使用は非推奨です。代わりにグローバルな internal_encoding を使用してください。
一部のエンコーディングは内部エンコーディングとして機能しません。(例: SJIS、BIG5、ISO-2022-*)
空の場合は、default_charset、internal_encoding、または iconv.internal_encoding が使用されます。
優先順位は、default_charset < internal_encoding < iconv.internal_encoding です。
一部のエンコーディングは内部エンコーディングとして機能しません。(例: SJIS、BIG5、ISO-2022-*)
空の場合は、default_charset、internal_encoding、または iconv.internal_encoding が使用されます。
優先順位は、default_charset < internal_encoding < iconv.internal_encoding です。
◆ internal_encoding
PHPの内部文字エンコーディングは空に設定されています。
空の場合、default_charsetが使用されます。
空の場合、default_charsetが使用されます。
◆ default_charset
PHPのデフォルトの文字セットはUTF-8に設定されています。
PHPプログラムの保存形式
PHPプログラムのファイル(*.php)はUTF-8形式(BOM無し)で保存する。
入力データチェック
ユーザーが送信するデータがUTF-8であるかプログラムでチェックする。
mb_check_encoding関数 を使用。
文字列処理
マルチバイト文字列を処理する際はマルチバイト文字列関数(mb_xxx関数)を使用する。
HTTPレスポンスヘッダ
HTTPレスポンスヘッダに文字エンコーディングを指定する。
php.ini
◆ default_mimetype
◆ default_charset
PHPの組み込みのデフォルトメディアタイプはtext/htmlに設定されています。
◆ default_charset
PHPプログラム
header関数を使用する。
header('context-type: text/html; charset=UTF-8');
htmlspecialchars関数
PHPプログラムからWebブラウザへデータを出力する際に使用するhtmlspecialchars関数は第3引数に文字エンコーディングを指定する。
PHP 学習
0 件のコメント:
コメントを投稿