extension php character-encoding multibyte mbstring

extension - ¿Qué hacen estas configuraciones PHP mbstring?



mbstring php 7 (3)

Creo que todo se explica por la demostración en este ejemplo:

http://fr2.php.net/manual/en/function.mb-internal-encoding.php#53265

Aunque no se usa en él, puede deducir el uso de mbstring.http_input .

Estoy tratando de averiguar exactamente qué hacen estas configuraciones php.ini. ¿Qué sucede cuando están configurados en valores diferentes? ¿Cuándo son necesarios? ¿Cuándo son dañinos?

Como de costumbre, el manual de PHP no es útil.

EDITAR : solo para aclarar, entiendo cómo funcionan las codificaciones de caracteres, y entiendo cómo las funciones de varios bytes de PHP difieren de sus contrapartes de un solo byte. Estoy buscando detalles sobre lo que hacen las configuraciones anteriores.

EDIT 2 : OK, parece que realmente proporcionan más documentación que solo la página en la configuración de tiempo de ejecución , que solo tiene resúmenes de una línea. Los tres primeros tienen funciones con nombres similares, y hay más detalles en las páginas que describen las versiones de funciones. Agregué enlaces arriba.

EDIT 3 : Agregar un bounty. Estoy buscando detalles específicos sobre exactamente lo que hacen estos ajustes, especialmente los últimos tres. ¿De qué se convierten desde y hacia, y cuándo lo hacen?


El objetivo es admitir diferentes codificaciones de conjunto de caracteres. Hay una gran variedad de codificaciones (ASCII, ANSI, UTF-8, etc.) y cada una tiene diferentes conjuntos de caracteres y número de bytes por carácter. La configuración que buscas especifica codificaciones predeterminadas para diferentes funciones de PHP.

PHP proporciona una serie de funciones que te ayudan a manejar estas diferentes codificaciones de manera adecuada. Para una ilustración, echa un vistazo a mb_strlen () vs strlen ().

La respuesta corta es que, a menos que esté localizando el texto de su aplicación o comunicándose con sistemas con diferentes codificaciones (¡su base de datos incluida!), Probablemente no tenga que preocuparse por ello.


Puede cambiar mbstring.language a cualquier idioma con el que esté utilizando. (Fuente)

idioma

; language for internal character representation. mbstring.language = Neutral ; Set default language to neutral(UTF-8) (default) mbstring.language = English mbstring.language = Japanese mbstring.language = Korean ;For Korean market later

http_input

; http input encoding. mbstring.http_input = pass mbstring.http_input = auto mbstring.http_input = UTF-8 mbstring.http_input = UTF-8, SJIS, EUC-JP

http_output

; http output encoding. mb_output_handler must be ; registered as output buffer to function mbstring.http_output = pass mbstring.http_output = UTF-8

codificación de traducción

; enable automatic encoding translation accoding 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. mbstring.encoding_translation = On