PHP如何知道它解释的.php文件的编码?
我的意思是.php文件可以编码在例如UTF-8或CP 1252.这会影响到例如字符串文字。
php.ini中有一个设置吗?或者PHP是否尝试自动确定编码(例如,如果没有有效的UTF-8,则假设为CP 1252)?
感谢您的解释!
答案 0 :(得分:5)
PHP源代码没有假设源编码。一切都被视为二进制。这意味着如果你的编辑器将文件保存为CP-1252(我肯定不希望),你回显的字符串也是CP-1252。
答案 1 :(得分:2)
文件的编码与其中的字符串文字几乎没有关系。就PHP而言,字符串只是一个字节序列,不存储更多数据。如果在iso-8859-15文件中包含utf-8字符串,它仍将是utf-8字符串的字节。由于这些只是字节,您可以自由地在同一文件中的字符串中混合使用不同的编码(尽管它们在任何编辑器中看起来都很奇怪)。
您可能不希望定义文件的编码,而只是如何处理&输出字符串。您可以使用default_charset
ini-setting定义输出的内容(最有可能是您想要的内容),内部mb_
函数会监听mbstring.internal_encoding
。
请注意,zend.multibyte
应能够以不同的编码方式扫描与普通扫描仪不兼容的文件(例如CP936,Big5,CP949,Shift_JIS),您可以在ini设置中配置这些扫描仪。帮助declare(encoding='name')
,但我非常怀疑这是你正在寻找的。我还没有测试过这个功能,接下来的文档就不存在了。