PHP如何知道它解释的.php文件的编码?
我的意思是.php文件可以用UTF-8或CP 1252编码。这将影响字符串字面量。
php.ini中是否有一种设置?或者PHP会尝试自动确定编码(例如,如果没有有效的UTF-8,则假定为CP 1252 ...)?
谢谢你的解释!
发布于 2012-12-15 23:10:24
PHP源代码对源代码编码没有任何假设。所有内容都被视为二进制。这意味着如果您的编辑器将文件保存为CP-1252 (我当然希望不是),那么您回显的字符串也是CP-1252。
发布于 2012-12-15 23:16:34
文件的编码与其中的字符串文字几乎没有关系。就PHP而言,字符串只是一个字节序列,不会存储更多的数据。如果在iso-8859-15文件中包含utf-8字符串,它仍然是utf-8字符串的字节。由于这些只是字节,您可以自由地在同一文件中的字符串中混合不同的编码(尽管它们在任何编辑器中看起来都很奇怪)。
您可能不希望定义文件的编码,而只是希望定义如何处理和输出字符串。您可以使用default_charset ini设置来定义它作为头部输出的内容(这很可能是您想要的),并且内部mb_函数将侦听mbstring.internal_encoding。
请注意,zend.multibyte实际上应该能够扫描不同编码的文件,这些编码与常规扫描仪(例如CP936、Big5、CP949、Shift_JIS)不兼容,您可以在ini设置和declare(encoding='name')帮助中配置这些扫描仪,但我非常怀疑这是否是您正在寻找的。我还没有测试这个功能,而且它的文档也不是不存在的。
https://stackoverflow.com/questions/13893265
复制相似问题