【问题标题】:Where does the default mb_internal_encoding() value come from?默认的 mb_internal_encoding() 值来自哪里?
【发布时间】:2012-02-24 03:03:30
【问题描述】:

如果我要编写一个新的 php 文件,并包含 echo "current mb_internal_encoding: ".mb_internal_encoding() ,那么输出值从何而来?它是如何“决定”的/如何治理的?

背景:我写了一个网络应用程序,我认为我已经完成了将整个站点设置为 utf-8 的所有工作,但发现我仍然需要手动设置这个值......

【问题讨论】:

    标签: php unicode localization


    【解决方案1】:

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

    【讨论】:

    • 有趣。我有;mbstring.internal_encoding = EUC-JP 所以它不活跃。我还找到了;mbstring.language = Japanese、;mbstring.http_output = SJIS。我正在使用 WAMPserver 堆栈进行开发,我不知道为什么所有这些都设置为 Jpz 字符集。为什么我不应该浏览整个 php.ini 并用 'utf-8' 替换任何字符集的任何提及?
    • Jup,出于某种原因,PHP 喜欢默认使用 ISO-8859。您应该在应用程序中处理这些设置以保持其可移植性。在要部署应用程序的任何地方更改 php.ini 通常不是最方便的解决方案。
    • 嗯....我尝试了mbstring.internal_encoding = UTF-8、"UTF-8"、utf-8,然后是"utf-8",当我运行echo "current mb_internal_encoding: ".mb_internal_encoding() 时,我仍然得到ISO-8859。知道我做错了什么吗?
    • 请看我的其他问题stackoverflow.com/questions/9446473/… 和stackoverflow.com/questions/9446832/… 解释我上面的问题:我修改了错误的php.ini 文件...
    • 从 5.6 开始,它已被弃用,默认值由 default_charset 设置,它本身是UTF-8 by default。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 2011-01-25
    • 2015-10-27
    相关资源
    最近更新 更多