1

PHP 如何知道它所解释的 .php 文件的编码?

我的意思是 .php 文件可以编码为例如 UTF-8 或 CP 1252。这会影响例如字符串文字。

php.ini 中是否有一项设置?或者 PHP 是否尝试自动确定编码(例如,如果没有有效的 UTF-8 则假设 CP 1252 ...)?

谢谢你的解释!

4

2 回答 2

5

PHP 源代码不对源编码做任何假设。一切都被视为二进制。这意味着如果您的编辑器将文件保存为 CP-1252(我当然希望不会),您回显的字符串也是 CP-1252。

于 2012-12-15T15:10:24.443 回答
2

文件的编码与其中的字符串文字几乎没有关系。就 PHP 而言,字符串只是一个字节序列,不会存储更多数据。如果您在 iso-8859-15 文件中包含 utf-8 字符串,它仍然是 utf-8 字符串的字节。由于这些只是字节,您可以在同一文件中的字符串中自由混合不同的编码(尽管它们在任何编辑器中看起来都很奇怪)。

您可能不是要定义文件的编码,而只是要如何处理和输出字符串。default_charset您可以使用ini-setting 将其输出的内容定义为标题(这很可能是您想要的) ,并且内部mb_函数 listen mbstring.internal_encoding

请注意,zend.multibyte应该能够实际扫描与普通扫描仪不兼容的不同编码的文件(例如 CP936、Big5、CP949、Shift_JIS),您可以在 ini 设置和帮助中进行配置declare(encoding='name'),但我非常怀疑这就是你要找的。我还没有测试过这个功能,而且它的文档也不存在。

于 2012-12-15T15:16:33.800 回答