我正在试图找出这些php.ini设置的确切内容。当它们被设置为不同的值时会发生什么?什么时候需要?它们何时有害?
像往常一样,PHP manual不太有帮助。
编辑:为了澄清,我理解字符编码是如何工作的,我理解PHP的多字节函数与单字节函数的区别。我正在寻找上述设置的具体细节。
编辑2 :好的,看起来他们确实提供的文档比page on runtime configuration更多,而{{3}}只有一行摘要。前三个具有类似命名的功能,并且在描述功能版本的页面上有更多细节。我在上面添加了链接。
编辑3 :添加赏金。我正在寻找有关这些设置的具体细节,特别是最后三个。他们从哪里转换,以及何时转换?
答案 0 :(得分:7)
您可以将mbstring.language更改为您正在使用的任何语言。 (Source)
语言
; 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
编码翻译
; 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
答案 1 :(得分:3)
重点是支持不同的字符集编码。有各种各样的编码(ASCII,ANSI,UTF-8等),每个编码都有不同的字符集和每个字符的字节数。您正在查看的设置为不同的PHP函数指定默认编码。
PHP提供了许多功能,可以帮助您正确处理这些不同的编码。有关说明,请查看mb_strlen()vs strlen()。
简短的回答是,除非您正在本地化您的应用程序的文本,或与具有不同编码的系统(包括您的数据库!)进行通信,否则您可能不需要担心它。
答案 2 :(得分:2)
我认为这个例子中的演示解释了一切:
http://fr2.php.net/manual/en/function.mb-internal-encoding.php#53265
虽然它没有使用,但您可以推断出mbstring.http_input
的使用。