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" PHP_INI_ALL Disponible desde PHP 4.3.0.. PHP_INI_PERDIR en PHP <= 5.2.6
mbstring.detect_order NULL PHP_INI_ALL Disponible desde PHP 4.0.6.
mbstring.http_input "pass" PHP_INI_ALL Disponible desde PHP 4.0.6.
mbstring.http_output "pass" PHP_INI_ALL Disponible desde PHP 4.0.6.
mbstring.internal_encoding NULL PHP_INI_ALL Disponible desde PHP 4.0.6.
mbstring.script_encoding NULL PHP_INI_ALL Disponible desde PHP 4.3.0.
mbstring.substitute_character NULL PHP_INI_ALL Disponible desde PHP 4.0.6.
mbstring.func_overload "0" PHP_INI_SYSTEM PHP_INI_PERDIR desde PHP 4.3 a 5.2.6, en versiones distintas PHP_INI_SYSTEM. Disponible desde PHP 4.2.0.
mbstring.encoding_translation "0" PHP_INI_PERDIR Disponible desde PHP 4.3.0.
mbstring.strict_detection "0" PHP_INI_ALL Disponible desde PHP 5.1.2.
Para más detalles y definiciones de los modos de PHP_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 boolean

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

Define el juego de caracteres interno predeterminado.

mbstring.http_input string

Define el juego de caracteres predeterminado del HTTP entrante.

mbstring.http_output string

Define el juego de caracteres predeterminado del HTTP saliente.

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.

mbstring.func_overload string

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 archivo php.ini

mbstring.strict_detection boolean

Habilita la detección estricta de codificaciones.

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   

add a note add a note

User Contributed Notes 1 note

up
0
PRETTYGIRL NOT COMe
8 months ago
Note that you should better at least set "mbstring.internal_encoding".

Just check as below:

<?php

echo mb_internal_encoding() . '<br />';
echo
mb_regex_encoding();

?>

You might be surprised at unexpected values.

eg.

mbstring.language Japanese
;mbstring.internal_encoding (commented out showing "no value" in phpinfo() )

These two lines in "php.ini" are the same values as

mb_internal_encoding("EUC-JP");
mb_regex_encoding("EUC-JP");

in Win / Linux servers.

"mbstring.internal_encoding" defines the default encoding for "mb_" Functions such as "mb_strlen()".

It also defines the same for "mb_ereg_" Functions such as "mb_ereg()" when you don't set "mb_regex_encoding".
To Top