## 実行時設定

php.ini の設定により動作が変化します。

mbstring 設定オプション
名前 | デフォルト | 変更可能 | 変更履歴
--- | --- | --- | ---
mbstring.language | "neutral" | `INI_ALL` |
mbstring.detect_order | NULL | `INI_ALL` |
mbstring.http_input | "pass" | `INI_ALL` | 非推奨になりました。
mbstring.http_output | "pass" | `INI_ALL` | 非推奨になりました。
mbstring.internal_encoding | NULL | `INI_ALL` | 非推奨になりました。
mbstring.substitute_character | NULL | `INI_ALL` |
mbstring.func_overload | "0" | `INI_SYSTEM` | PHP 7.2.0 で非推奨になり、PHP 8.0.0 で削除されました。
mbstring.encoding_translation | "0" | `INI_PERDIR` |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | `INI_ALL` |
mbstring.strict_detection | "0" | `INI_ALL` |
mbstring.regex_retry_limit | "1000000" | `INI_ALL` | PHP 7.4.0 以降で利用可能です。
mbstring.regex_stack_limit | "100000" | `INI_ALL` | PHP 7.3.5 以降で利用可能です。

INI_* モードの詳細および定義については どこで設定を行うのか を参照してください。

以下に設定ディレクティブに関する 簡単な説明を示します。

`mbstring.language` string

  mbstring で使用される言語設定(NLS)のデフォルト値。 この設定は `mbstring.internal_encoding` を定義するため、 php.ini の中で `mbstring.internal_encoding` は、 `mbstring.language` の後に置く必要があることに注意してください。

`mbstring.encoding_translation` bool

  入力される HTTP クエリに関して、 文字エンコーディング検出および内部文字エンコーディングへの変換を行う 透過的な文字エンコーディングフィルタを有効にします。

`mbstring.internal_encoding` string
  警告

  この非推奨の機能は、きっと 将来 削除 されるでしょう。

  内部文字エンコーディングのデフォルト値を定義します。

  この値は空のままにしておいて、代わりに `default_charset` を設定すべきです。

`mbstring.http_input` string
  警告

  この非推奨の機能は、きっと 将来 削除 されるでしょう。

  HTTP 入力文字エンコーディングのデフォルト値を定義します。

  この値は空のままにしておいて、代わりに `default_charset` を設定すべきです。

`mbstring.http_output` string
  警告

  この非推奨の機能は、きっと 将来 削除 されるでしょう。

  HTTP 出力文字エンコーディングのデフォルト値を定義します (出力は、内部エンコーディングから HTTP 出力エンコーディングに変換された上で出力されます)。

  この値は空のままにしておいて、代わりに `default_charset` を設定すべきです。

`mbstring.detect_order` string

  文字コード検出のデフォルト値を定義します。 mb_detect_order()も参照ください。

`mbstring.substitute_character` string

  無効な文字を代替する文字を定義します。 サポートされる値は、mb_substitute_character() を参照ください。

`mbstring.func_overload` string
  警告

  この機能は PHP 7.2.0 で 非推奨 になり、PHP 8.0.0 で 削除 されました。この機能に頼らないことを強く推奨します。

  シングルバイト対応の関数を mbstring 関数の対応する関数でオーバーロード (置換)します。詳細は、 関数のオーバーロード を参照ください。

  この設定は、php.ini でしか変更できません。

`mbstring.http_output_conv_mimetypes` string

`mbstring.strict_detection` bool

  厳密なエンコーディング検出を有効にします。 詳しい説明と例は、mb_detect_encoding() を参照ください。

`mbstring.regex_retry_limit` int

  mbregex のマッチングの間に行われる、バックトラッキングの量を制限します。

  この設定は、oniguruma >= 6.8.0 と PHP をリンクした場合にのみ利用可能です。

`mbstring.regex_stack_limit` int

  mbstring の正規表現エンジンの、スタックの深さを制限します。

» HTML 4.01 の仕様 によると、Web ブラウザは、 フォームのデータを投稿する際にページで使用される文字エンコーディングと 異なるエンコーディングを使用することができます。 ブラウザで使用される文字エンコーディングを検出するには、 mb_http_input() を参照ください。

一般的に使用されるブラウザでは、 指定したHTML文書の文字エンコーディングをかなり正確に推定することができますが、 header() または設定パラメータ default_charset により、 `Content-Type` HTTP ヘッダで `charset` を設定する方がより良いでしょう。

例1 php.ini 設定の例

    ; デフォルトの言語を設定
    mbstring.language        = neutral; デフォルト言語を中立(UTF-8)に設定 (デフォルト)
    mbstring.language        = English; デフォルト言語を英語に設定
    mbstring.language        = Japanese; デフォルト言語を日本語に設定

    ;; デフォルトの内部エンコーディングを設定
    ;; 注意: PHPで動作する文字エンコーディングを使用すること
    mbstring.internal_encoding    = UTF-8  ; 内部エンコーディングを UTF-8 に設定

    ;; HTTP入力エンコーディング変換を有効にする
    mbstring.encoding_translation = On

    ;; デフォルトのHTTP入力文字エンコーディングを設定
    ;; 注意: スクリプトではhttp_inputの設定は変更できません。
    mbstring.http_input           = pass    ; 変換しない。
    mbstring.http_input           = auto    ; HTTP 入力を auto に設定
                                    ; "auto" は mbstring.language の設定を使って展開されます
    mbstring.http_input           = SJIS    ; HTTP入力をSJISに設定
    mbstring.http_input           = UTF-8,SJIS,EUC-JP ; 順番を指定

    ;; デフォルトのHTTP出力文字エンコーディングを設定
    mbstring.http_output          = pass    ; 変換しない
    mbstring.http_output          = UTF-8   ; HTTP出力エンコーディングを
                                            ;  UTF-8 に指定

    ;; デフォルトの文字エンコーディング検出順序を設定
    mbstring.detect_order         = auto    ; デフォルトの順番を auto に設定
    mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; 順番を指定

    ;; 代替文字のデフォルト値を設定
    mbstring.substitute_character = 12307   ; Unicode 値を指定
    mbstring.substitute_character = none    ; 文字を出力しない
    mbstring.substitute_character = long    ; long の例: U+3000,JIS+7E7E

例2 `EUC-JP` ユーザー用の php.ini の設定

    ;; 出力バッファリングを無効にする
    output_buffering      = Off

    ;; HTTP charsetヘッダを設定
    default_charset       = EUC-JP

    ;; デフォルトの言語を日本語にする
    mbstring.language = Japanese

    ;; HTTP 入力変換を有効にする
    mbstring.encoding_translation = On

    ;; HTTP 入力エンコーディング変換を auto に設定
    mbstring.http_input   = auto

    ;; HTTP 出力を EUC-JP に設定
    mbstring.http_output  = EUC-JP

    ;; 内部エンコーディングを EUC-JP に設定
    mbstring.internal_encoding = EUC-JP

    ;; 無効な文字を出力しない
    mbstring.substitute_character = none

例3 `SJIS` ユーザー用の php.iniの 設定

    ;; 出力のバッファリングを有効に
    output_buffering     = On

    ;; 出力の変換を有効にするために mb_output_handler を設定
    output_handler       = mb_output_handler

    ;; HTTPヘッダ charset を設定
    default_charset      = Shift_JIS

    ;; デフォルトの言語を日本語に設定
    mbstring.language = Japanese

    ;; HTTP 入力変換を有効にする
    mbstring.encoding_translation = On

    ;; HTTP 入力エンコーディング変換を auto に設定
    mbstring.http_input  = auto

    ;; SJIS に変換
    mbstring.http_output = SJIS

    ;; 内部エンコーディングを EUC-JP に設定
    mbstring.internal_encoding = EUC-JP

    ;; 無効な文字を出力しない
    mbstring.substitute_character = none

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open