默认的mb_internal_encoding()值是从哪里来的?

8
如果我编写了一个新的php文件,并且包含echo "current mb_internal_encoding: ".mb_internal_encoding(),输出值会来自哪里?它如何被“决定”或者受到哪些规则的控制?
背景:我编写了一个Web应用程序,在其中我认为我已经完成了将整个站点设置为UTF-8的所有工作,但我仍然需要手动设置这个值...
1个回答

7

1
有趣。我有mbstring.internal_encoding = EUC-JP,所以它没有激活。此外,我还发现了mbstring.language = Japanesembstring.http_output = SJIS。我正在使用WAMPserver堆栈进行开发,不知道为什么所有这些都设置为Jpz字符集。有什么理由我不应该浏览整个php.ini文件,并将任何字符集的提及替换为'utf-8'吗? - JDelage
1
某些原因,PHP 喜欢使用 ISO-8859 作为默认编码。你应该在应用程序中处理这些设置以保持可移植性。在每次部署应用程序时都更改 php.ini 通常不是最方便的解决方案。 - deceze
请查看我的其他问题https://dev59.com/4GDVa4cB1Zd3GeqPhdwK和https://dev59.com/I2DVa4cB1Zd3GeqPhd0K,解释了我上面的问题:我修改的是错误的`php.ini`文件... - JDelage
3
从5.6版本开始,它已被废弃,默认值由default_charset设置,默认情况下为UTF-8(详见http://php.net/manual/en/ini.core.php#ini.default-charset)。 - GreenReaper
@TheGodfather 或许文档有误?或者需要将其放在引号内?根据http://php.net/manual/en/mbstring.configuration.php#ini.mbstring.internal-encoding,因为过时并不意味着已被删除,所以仍应该可以在那里重写。 - GreenReaper
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接