如何知道.php文件的编码

时间:2015-09-17 21:14:04

标签: php utf-8 character-encoding

每当我们创建文件时,您都可以在不同的文本编辑器中选择编码类型。

我的问题是,在使用php时,请读取文件,但如果是(UTF8,ISO 8859-1,ANSI ...),则不以字节为单位指定文件。

但我意识到该文件末尾有“位”,因为php返回最后一个STRING为0。 string''(length = 0)

<?php 
    $leitor = fopen('2.php','rb');
    while(!feof($leitor)){
        var_dump(fread($leitor, 1));
    }
    fclose($leitor);
?>

enter image description here

我相信这部分应该包含编码类型(UTF-8,ANSI ...)

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

2)我如何用PHP读取“位”实际上想要读取由以下表示的最后位:

string''(length = 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;
}

2 个答案:

答案 0 :(得分:3)

  

我相信这部分应该包含编码类型(UTF-8,ANSI ...)

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

{<1}}函数仅在读取已到达文件末尾后才返回true ;因此,它通常没用。相反,请考虑以下内容:

feof()

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

答案 1 :(得分:-3)

在这里你有take a look at this function 此函数将输出基于字符串的编码,只需传递整个文本