2012-02-24 120 views
6

如果我要写一个新的php文件,并包括echo "current mb_internal_encoding: ".mb_internal_encoding(),输出值从哪里来?它如何“决定”/如何管理?默认的mb_internal_encoding()值来自哪里?

背景:我写了一个Web应用程序,我想我已经做了一切设置整个网站为UTF-8,我发现我仍然需要手动设置这个值...

回答

6

这取决于设置的mbstring.internal_encoding in php.ini

+1

有趣。我有'; mbstring.internal_encoding = EUC-JP'所以它不活跃。我也找到'; mbstring.language = Japanese','; mbstring.http_output = SJIS'。我正在开发使用WAMPserver堆栈,我不知道为什么所有这些都设置为Jpz字符集。为什么我不应该浏览整个php.ini,并用“utf-8”替换任何字符集? – JDelage 2012-02-24 03:27:14

+0

如果我没有手动设置,'mb_internal_encoding()'出现为ISO-8859-1 ... – JDelage 2012-02-24 03:28:53

+1

Jup,出于某种原因PHP默认使用ISO-8859。您应该在应用程序中处理这些设置以保持其便携性。在任何想要部署应用程序的地方更改php.ini往往不是最方便的解决方案。 – deceze 2012-02-24 03:48:36