## Configuración en tiempo de ejecución

El comportamiento de estas funciones se ve afectado por la configuración de php.ini.

Opciones de configuración de mbstring
Nombre | Por defecto | Cambiable | Historial de cambios
--- | --- | --- | ---
mbstring.language | "neutral" | `INI_ALL` |
mbstring.detect_order | NULL | `INI_ALL` |
mbstring.http_input | "pass" | `INI_ALL` | Obsoleta
mbstring.http_output | "pass" | `INI_ALL` | Obsoleta
mbstring.internal_encoding | NULL | `INI_ALL` | Obsoleta
mbstring.substitute_character | NULL | `INI_ALL` |
mbstring.func_overload | "0" | `INI_SYSTEM` | Obsoleta desde PHP 7.2.0; eliminada desde 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` | Disponible a partir de PHP 7.4.0.
mbstring.regex_stack_limit | "100000" | `INI_ALL` | Disponible a partir de PHP 7.3.5.

Para más detalles y definiciones de los modos de INI_*, vea Dónde se puede realizar un ajuste de configuración.

He aquí una breve explicación de las directivas de configuración.

`mbstring.language` string

  El ajuste de lenguaje nacional predeterminado (NLS) usado en mbstring. Se ha de observar que esta opción define automágicamente `mbstring.internal_encoding`, por lo que se debe colocar `mbstring.internal_encoding` tras `mbstring.language` en php.ini

`mbstring.encoding_translation` bool

  Habilita el filtro de codificación de caracteres transparente para las consultas HTTP entrantes, la cual lleva a cabo la detección y la conversión de la codificación de entrada a la codificación de caracteres interna.

`mbstring.internal_encoding` string
  Advertencia

  Esta característica obsoleta será eliminada con certeza en el futuro.

  Define la codificación de caracteres interna.

  Los usuarios deberían dejarla vacía y establecer `default_charset` en su lugar.

`mbstring.http_input` string
  Advertencia

  Esta característica obsoleta será eliminada con certeza en el futuro.

  Define la codificación de caracteres predeterminada de entrada de HTTP.

  Los usuarios deberían dejarla vacía y establecer `default_charset` en su lugar.

`mbstring.http_output` string
  Advertencia

  Esta característica obsoleta será eliminada con certeza en el futuro.

  Define la codificación de caracteres predeterminada de salida de HTTP (la salida será convertida de la codificación interna a la codificación de salida de HTTP).

  Los usuarios deberían dejarla vacía y establecer `default_charset` en su lugar.

`mbstring.detect_order` string

  Define el orden de detección de códigos de caracteres predeterminado. Véase también mb_detect_order().

`mbstring.substitute_character` string

  Define el caracter de sustitución para juegos de caracteres inválidos. Véase también mb_substitute_character() para valores compatibles.

`mbstring.func_overload` string
  Advertencia

  This feature has been DEPRECATED as of PHP 7.2.0, and REMOVED as of PHP 8.0.0. Relying on this feature is highly discouraged.

  Reemplaza determinadas funciones de único byte por sus equivalentes en mbstring. Véase la sección Sobrecarga de funciones para más información.

  Este ajuste sólo puede ser cambiado en el fichero php.ini

`mbstring.http_output_conv_mimetypes` string

`mbstring.strict_detection` bool

  Habilita la detección estricta de codificaciones. Consulte mb_detect_encoding() para obtener una descripción y ejemplos.

`mbstring.regex_retry_limit` int

  Limits the amount of backtracking that may be performed during one mbregex match.

  This setting only takes effect when linking against oniguruma >= 6.8.0.

`mbstring.regex_stack_limit` int

  Limits the stack depth of mbstring regular expressions.

De acuerdo a la » especificación de HTML 4.01, se permite que los navegadores envíen un formulario con una codificación diferente a la utilizada por la página. Véase mb_http_input() para consultar los juegos de caracteres utilizados por los navegadores.

Pese a que la mayoría de navegadores son capaces de averiguar la codificación de un determinado documento HTML, es aconsejable utilizar el parámetro `charset` en la cabecera `Content-Type` de HTTP con un valor apropiado, mediante header() o mediante el ajuste ini default_charset.

Ejemplo #1 Ejemplos de ajustes de php.ini

    ; Establecer el lenguaje predeterminado
    mbstring.language        = Neutral; Establecer el lenguaje neutral(UTF-8) (predeterminado)
    mbstring.language        = English; Establecer como lenguaje el inglés
    mbstring.language        = Japanese; Establecer como lenguaje el japonés

    ;; Establecer la codificación interna predeterminada
    ;; Nota: Asegúrese de usar una codificación que funcione con PHP
    mbstring.internal_encoding    = UTF-8  ; Establecer la codificación interna a UTF-8

    ;; Traducción de codificación HTTP entrante habilitada
    mbstring.encoding_translation = On

    ;; Establecer la codificación de caracteres predeterminada de HTTP entrante
    ;; Nota: Un script no podrá cambiar el ajuste http_input.
    mbstring.http_input           = pass    ; Sin conversión.
    mbstring.http_input           = auto    ; Establecer la entrada HTTP en automático
                                    ; "auto" se expande de acuerdo a mbstring.language
    mbstring.http_input           = SJIS    ; Establecer la entrada HTTP a SJIS
    mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Especificar el orden

    ;; Establecer la codificación de caracteres predeterminada de HTTP saliente
    mbstring.http_output          = pass    ; Sin conversión
    mbstring.http_output          = UTF-8   ; Establecer la codificación de salida HTTP a UTF-8

    ;; Establecer el orden predeterminado de la detección de juegos de caracteres
    mbstring.detect_order         = auto    ; Orden de detección automático
    mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Especificar el orden

    ;; Establecer el carácter de sustitución predeterminado
    mbstring.substitute_character = 12307   ; Especificar un valor Unicode
    mbstring.substitute_character = none    ; No imprimir el carácter
    mbstring.substitute_character = long    ; Ejemplo de long: U+3000,JIS+7E7E

Ejemplo #2 Ajustes de php.ini para usuarios de `EUC-JP`

    ;; Deshabilitar el almacenamiento en el búfer de salida
    output_buffering      = Off

    ;; Establecer el juego de caracteres de las cabeceras HTTP
    default_charset       = EUC-JP

    ;; Establecer como lenguaje predeterminado el japonés
    mbstring.language = Japanese

    ;; Habilitar la traducción de la codificación del HTTP entrante.
    mbstring.encoding_translation = On

    ;; Establecer en automática la conversión de la codificación de HTTP entrante
    mbstring.http_input   = auto

    ;; Convertir la salida de HTTP a EUC-JP
    mbstring.http_output  = EUC-JP

    ;; Establecer EUC-JP como codificación interna
    mbstring.internal_encoding = EUC-JP

    ;; No imprimir caracteres inválidos
    mbstring.substitute_character = none

Ejemplo #3 Ajustes de php.ini para usuarios de `SJIS`

    ;; Habilitar el almacenamiento en el búfer de salida
    output_buffering     = On

    ;; Establecer mb_output_handler para habilitar la conversión de los datos de salida
    output_handler       = mb_output_handler

    ;; Establecer el juego de caracteres de las cabeceras HTTP
    default_charset      = Shift_JIS

    ;; Establecer como lenguaje predeterminado el japonés
    mbstring.language = Japanese

    ;; Establecer en automático la conversión del juego de caracteres http entrante
    mbstring.http_input  = auto

    ;; Convertir a SJIS
    mbstring.http_output = SJIS

    ;; Establecer EUC-JP como codificación interna
    mbstring.internal_encoding = EUC-JP

    ;; No imprimir caracteres inválidos
    mbstring.substitute_character = none