如何知道.php文件的编码

如何知道.php文件的编码,php,utf-8,character-encoding,Php,Utf 8,Character Encoding,无论何时创建文件,您都可以在不同的文本编辑器中选择编码类型 我的问题是,在使用php时,使读取文件成为可能,但如果文件是以字节为单位的,则不会指定该文件(UTF8、ISO 8859-1、ANSI…) 但是我意识到在文件的末尾有“位”,因为php返回最后一个字符串0。 字符串“”(长度=0) 我认为这部分应该包含编码类型(UTF-8、ANSI…) 1) 文件编码类型(UTF8-000001,ANSI-000011)的通知在哪里 2) 如何使用php读取“位”实际上,我想读取以下最后几位: 字

无论何时创建文件,您都可以在不同的文本编辑器中选择编码类型

我的问题是,在使用php时,使读取文件成为可能,但如果文件是以字节为单位的,则不会指定该文件(UTF8、ISO 8859-1、ANSI…)

但是我意识到在文件的末尾有“位”,因为php返回最后一个字符串0。 字符串“”(长度=0)


我认为这部分应该包含编码类型(UTF-8、ANSI…)

1) 文件编码类型(UTF8-000001,ANSI-000011)的通知在哪里

2) 如何使用php读取“位”实际上,我想读取以下最后几位:

字符串“”(长度=0)

因为我可以用字节来做:

function BinString2BitSequence1($mystring) {    
    $result = "";
    $end = strlen($mystring);
    for($i = 0 ; $i < $end; $i++){  
        $result .= str_pad(decbin(ord($mystring[$i])), 8, '0', STR_PAD_LEFT);
    }
    return $result;
}
函数BinString2BitSequence1($mystring){
$result=“”;
$end=strlen($mystring);
对于($i=0;$i<$end;$i++){
$result.=str_pad(decbin(ord($mystring[$i])),8,'0',str_pad_左);
}
返回$result;
}
给你 此函数将根据字符串输出编码,只需将整个文本传递到此处即可 此函数将输出基于字符串的编码,只需传递整个文本

我认为这部分应该包含编码类型(UTF-8、ANSI…)

你错了。您在文件末尾读取的空字符串就是:一个空字符串。它不包含任何信息

feof()
函数仅在读取到文件末尾后返回true;因此,它通常没有用处。取而代之的是,考虑一下:

while (strlen($str = fread($fh, 1)) > 0) {
   ...
}
关于文本编码,用于文件的编码不存储在文件中的任何位置。它必须由应用程序推断。在某些情况下(例如,带有BOM的UTF-8),可以可靠地检测到这一点;在其他情况下,它可能是模糊的

我认为这部分应该包含编码类型(UTF-8、ANSI…)

你错了。您在文件末尾读取的空字符串就是:一个空字符串。它不包含任何信息

feof()
函数仅在读取到文件末尾后返回true;因此,它通常没有用处。取而代之的是,考虑一下:

while (strlen($str = fread($fh, 1)) > 0) {
   ...
}

关于文本编码,用于文件的编码不存储在文件中的任何位置。它必须由应用程序推断。在某些情况下(例如,带有BOM的UTF-8),可以可靠地检测到这一点;在其他情况下,它可能是不明确的。

“ANSI”不是编码。我不知道你所说的“文件末尾的位”是什么意思。你好,我在上面添加了一张图片来展示我的意思。阿蒂没有看到任何“比特”,但我也无法解释你的输出。根据,最后的
fread
调用应该返回
FALSE
,而不是
'
。但是,当然,包含字节“a”的一个文件是用UTF-8编码的文件,没有BOM?是的,但它也是ISO-8859-1和ASCII。基本上,ISO-8859-1和UTF-8是ASCII的超集,因此任何有效的ASCII文件在这两个文件中也是有效的。“ANSI”不是编码。我不知道你所说的“文件末尾的位”是什么意思。你好,我在上面添加了一张图片来展示我的意思。阿蒂没有看到任何“比特”,但我也无法解释你的输出。根据,最后的
fread
调用应该返回
FALSE
,而不是
'
。但是,当然,包含字节“a”的一个文件是用UTF-8编码的文件,没有BOM?是的,但它也是ISO-8859-1和ASCII。基本上,ISO-8859-1和UTF-8是ASCII的超集,因此任何有效的ASCII文件在这两个文件中也是有效的。1)由于某种原因,您显式地将其标记为代码,因此链接不可单击。2) 您的链接用于指向手册的葡萄牙语版本(但您已经修复了该问题)。3) 你的答案中为什么会有一个代码块,其中包含
**飞走**
?4) 您链接到的文档实际上并没有解释函数的作用。。。5) ... 但它似乎在猜测编码。那不是很有用。6) 我看不出这与OP关于某个文件“结尾位”的问题有什么关系。1)由于某种原因,您显式地将其标记为代码,因此您的链接不可单击。2) 您的链接用于指向手册的葡萄牙语版本(但您已经修复了该问题)。3) 你的答案中为什么会有一个代码块,其中包含
**飞走**
?4) 您链接到的文档实际上并没有解释函数的作用。。。5) ... 但它似乎在猜测编码。那不是很有用。6) 我不明白这和OP关于某个文件“结尾位”的问题有什么关系,明白了。所以我寻找某个“字节”来确定编码的类型!例:
string'æ'(长度=1)string'œ'(长度=1)string'‰(长度=1)
att在试图理解数据之前,您需要知道编码。你只能很好地猜测哪些可能是错的,明白了。所以我寻找某个“字节”来确定编码的类型!例:
string'æ'(长度=1)string'œ'(长度=1)string'‰(长度=1)
att在试图理解数据之前,您需要知道编码。你只能很好地猜测哪些可能是错的。