PHP 学習:文字エンコーディングを意識する

公開:2026.04.17 16:58

PHP:文字エンコーディングを意識する

※ 参考:書籍:プロになるためのPHPプログラミング入門
※ 環境:PHP 8.3

1.4.4 文字エンコーディング関連の設定を行う方法 (p.40)

php.iniの設定

マルチバイトに関する主な設定項目
◆ mbstring.language
これは 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 です。

◆ internal_encoding
PHPの内部文字エンコーディングは空に設定されています。
空の場合、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
PHPの組み込みのデフォルトメディアタイプはtext/htmlに設定されています。

◆ default_charset

PHPプログラム

header関数を使用する。
header('context-type: text/html; charset=UTF-8');

htmlspecialchars関数

PHPプログラムからWebブラウザへデータを出力する際に使用するhtmlspecialchars関数は第3引数に文字エンコーディングを指定する。



PHP 学習

0 件のコメント:

その他の記事