日本語環境の設定 - mbstring
当ページのリンクには広告が含まれています。
PHPの日本語環境に関する設定、mbstringについてをみていきましょう。
準備
mbstringを設定する前にWindowsとCentOS環境では、以下の設定が必要になります。
Windows
拡張モジュールのディレクトリを設定し、PHPの設定ファイル(php.ini)からDLL「php_mbstring.dll」を読み込むように設定します。
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.
;
;extension=php_bz2.dll
… 中略 …
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll ← コメント(;)をはずします。
;extension=php_exif.dll ; Must be after mbstring as it depends on it
;extension=php_mysql.dll
;extension=php_mysqli.dll
CentOS
mbstringを利用するために以下のパッケージをインストールします。
# yum install php-mbstring
XAMPP、MAMP、Debianでは、準備は特に必要ありません。
mbstringの設定
日本語環境(UTF-8)を設定するにはPHPの設定ファイル(php.ini)のmbstringを設定します。以下は設定例です。
[mbstring] ; language for internal character representation. ; http://php.net/mbstring.language mbstring.language = Japanese ← コメント(;)をはずします。 ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) ; http://php.net/mbstring.internal-encoding mbstring.internal_encoding = UTF-8 ← コメントをはずし、内部エンコーディングをUTF-8へ。 ; http input encoding. ; http://php.net/mbstring.http-input mbstring.http_input = auto ← コメント(;)をはずします。 ; http output encoding. mb_output_handler must be ; registered as output buffer to function ; http://php.net/mbstring.http-output mbstring.http_output = UTF-8 ← コメントをはずし、エンコーディングをUTF-8へ。 ; enable automatic encoding translation according to ; mbstring.internal_encoding setting. Input chars are : ; enable automatic encoding translation according to ; mbstring.internal_encoding setting. Input chars are ; converted to internal encoding by setting this to On. ; Note: Do _not_ use automatic encoding translation for ; portable libs/applications. ; http://php.net/mbstring.encoding-translation mbstring.encoding_translation = On ← コメントをはずし、Onに。 ; automatic encoding detection order. ; auto means ; http://php.net/mbstring.detect-order mbstring.detect_order = auto ← コメント(;)をはずします。
設定の確認
mb_get_info関数を使って、mbstringの設定を確認します。以下のPHPスクリプトを実行します。
<?php print_r(mb_get_info()); ?>
実行結果です。mbstringで設定を変更した項目が反映されいれば、OKです。
Array ( [internal_encoding] => UTF-8 [http_output] => UTF-8 [http_output_conv_mimetypes] => ^(text/|application/xhtml\+xml) [func_overload] => 0 [func_overload_list] => no overload [mail_charset] => ISO-2022-JP [mail_header_encoding] => BASE64 [mail_body_encoding] => 7bit [illegal_chars] => 0 [encoding_translation] => On [language] => Japanese [detect_order] => Array ( [0] => ASCII [1] => JIS [2] => UTF-8 [3] => EUC-JP [4] => SJIS ) [substitute_character] => 63 [strict_detection] => Off )