Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这些PHP mbstring设置的作用是什么?_Php_Character Encoding_Multibyte_Mbstring - Fatal编程技术网

这些PHP mbstring设置的作用是什么?

这些PHP mbstring设置的作用是什么?,php,character-encoding,multibyte,mbstring,Php,Character Encoding,Multibyte,Mbstring,我正试图弄清楚这些php.ini设置到底是做什么的。当它们被设置为不同的值时会发生什么?什么时候有必要?什么时候有害 mbstring.encoding_翻译 和往常一样,这项计划没有什么帮助 编辑:为了澄清,我了解字符编码是如何工作的,我也了解PHP的多字节函数与单字节函数的区别。我正在寻找上述设置的具体功能 编辑2:好的,看起来他们确实提供了比只有一行摘要的文档更多的文档。前三个函数的名称类似,在描述函数版本的页面上有更多详细信息。我在上面添加了链接 编辑3:添加悬赏。我正在寻找这

我正试图弄清楚这些php.ini设置到底是做什么的。当它们被设置为不同的值时会发生什么?什么时候有必要?什么时候有害

  • mbstring.encoding_翻译
和往常一样,这项计划没有什么帮助

编辑:为了澄清,我了解字符编码是如何工作的,我也了解PHP的多字节函数与单字节函数的区别。我正在寻找上述设置的具体功能

编辑2:好的,看起来他们确实提供了比只有一行摘要的文档更多的文档。前三个函数的名称类似,在描述函数版本的页面上有更多详细信息。我在上面添加了链接


编辑3:添加悬赏。我正在寻找这些设置的具体细节,尤其是最后三个。它们从什么转换到什么,何时转换?

您可以将mbstring.language更改为您正在使用的任何语言

语言

; 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_输入

; 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_输出

; 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

关键是要支持不同的字符集编码。有多种编码(ASCII、ANSI、UTF-8等),每种编码都有不同的字符集和每个字符的字节数。查看的设置为不同的PHP函数指定默认编码

PHP提供了许多函数,可以帮助您正确处理这些不同的编码。如需说明,请查看mb_strlen()与strlen()


简而言之,除非您正在本地化应用程序的文本,或者使用不同的编码(包括您的数据库!)与系统通信,否则您可能不需要担心它。

我认为本例中的演示说明了一切:


虽然它没有在里面使用,但是你可以推断出
mbstring.http_input

的用法。你是在讽刺手册没有什么帮助,对吧?我认为它非常有用,作为PHP的手册。不过,您还需要了解HTTP和字符编码才能理解这些设置。PHP手册不是这两个方面的手册。重新编辑2:我认为类似名称的函数对你的问题没有多大帮助。例如,mb_language()意味着它只影响电子邮件的编码,而我得到的印象是mbstring.language有更广泛的影响。mb_http_input()只检测当前http请求中的数据编码,它没有说明mbstring.http_input的设置有什么作用。mbstring.http_input和mbstring.http_output在PHP 5.6.0中已被弃用。如果您使用的是PHP>=5.6.0,请改用“default\u charset”指令。