PHP如何知道.PHP文件的编码?

PHP如何知道.PHP文件的编码?,php,encoding,interpreter,Php,Encoding,Interpreter,PHP如何知道它所解释的.PHP文件的编码 我的意思是.php文件可以用UTF-8或CP1252编码。这会影响例如字符串文本 php.ini中有一个设置吗?或者PHP是否尝试自动确定编码,例如,如果没有有效的UTF-8,则假定为CP 1252 谢谢你的解释 PHP源代码对源代码编码没有任何假设。一切都被视为二进制。这意味着,如果编辑器将文件另存为CP-1252,我当然希望不是,那么您回显的字符串也是CP-1252。PHP源代码不对源代码进行假设。一切都被视为二进制。这意味着,如果编辑器将文件另存

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

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

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


谢谢你的解释

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

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

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

您可能不想定义文件的编码,而只是想知道如何处理和输出字符串。您可以将它输出的内容定义为一个标头,该标头很可能是您使用默认的\u字符集ini设置想要的,并且内部mb_u函数侦听mbstring.internal\u编码


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

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

您可能不想定义文件的编码,而只是想知道如何处理和输出字符串。您可以将它输出的内容定义为一个标头,该标头很可能是您使用默认的\u字符集ini设置想要的,并且内部mb_u函数侦听mbstring.internal\u编码


请注意,zend.multibyte应该能够实际扫描与普通扫描仪不兼容的不同编码的文件,例如CP936、Big5、CP949、Shift_JIS,您可以在ini设置和帮助中配置declareencoding='name',但我非常怀疑这是您所寻找的。我还没有测试该功能,下一步的文档也不存在。

它只取决于您的编辑器,而不取决于phpit,只取决于您的编辑器,而不取决于PHP,并且每个字符串操作都是通过iso-8859-1编码完成的。对于任何不同于iso-8859-1的编码,您都必须使用mbstring或iconv。默认情况下,每个字符串操作都是单字节完成的,但对于一些默认ini设置和函数参数来说是安全的,PHP不关心哪个单字节字符集。因此,我应该始终使用mb_*字符串函数,不再使用例如strlen?坦白地说,如果我的web应用程序完全是UTF-8,那么实际上我个人会做大量的字符串操作,但这并不需要mbstring。例如,它的大部分都在处理URL和标识符。所以是的:在UTF-8中,任何实际的文本都应该使用mbstring。有mbstring函数重载这样的事情,但无论如何都要避免!每个字符串操作都是用iso-8859-1编码完成的。对于任何不同于iso-8859-1的编码,您都必须使用mbstring或iconv。默认情况下,每个字符串操作都是单字节完成的,但对于一些默认ini设置和函数参数来说是安全的,PHP不关心哪个单字节字符集。因此,我应该始终使用mb_*字符串函数,不再使用例如strlen?坦白地说,如果我的web应用程序完全是UTF-8,那么实际上我个人会做大量的字符串操作,但这并不需要mbstring。例如,它的大部分都在处理URL和标识符。所以是的:在UTF-8中,任何实际的文本都应该使用mbstring。有mbstring函数重载这样的事情,但无论如何都要避免!文件的编码与其中的字符串文字关系不大。-我想你应该换一种方式。文件的编码是关于如何存储文件中的文本数据:字符编码[…]将给定曲目中的每个字符与其他字符(如位模式[…])配对,以便于[
…]数据存储。@CodeCaster:Hm,我的意思可能有点模糊:它可能对文档有影响,但对PHP对它的解释没有影响:字符串文字被解释为一个字节序列,因此您可以在一个文件中对字符串文字使用不同的编码。PHP字符串没有编码,它们只是字节。文件的编码与其中的字符串文字关系不大。-我想你应该换一种方式。文件的编码是关于如何存储文件中的文本数据:字符编码[…]将给定指令集中的每个字符与其他字符(如位模式[…])配对,以便于[…]数据存储。@CodeCaster:Hm,可能有点模糊我的意思:这可能对文档有影响,但对PHP的解释没有影响:字符串文字被解释为字节序列,因此,您可以在单个文件中对字符串文本使用不同的编码。PHP字符串没有编码,它们只是字节。