織夢俠
WWW.2L3.NET

UTF-8文件的BOM頭的來由及去除方法

1. 什么是BOM頭
    在utf-8編碼文件中BOM在文件頭部,占用三個字節,用來標識該文件屬于utf-8編碼,現在已經有很多軟件識別BOM頭,但還是有些不能識別BOM頭,比如PHP就不能識別BOM頭,這也就是用記事本編輯utf-8編碼的PHP文件后,就會報錯的原因。
 
2. 包含BOM頭文件的產生
    在windows環境下,用記事本打開任何一個文本文件,另存為utf-8格式后,這樣文件就自動被加上了BOM頭信息。
    比較:
            utf-8(含BOM頭)
            
            utf-8(不含BOM頭)
            
    
    從上圖的比較中,可以很明顯的看出,含BOM頭的文件多出三個字節 efbbbf。
 
3. BOM頭信息的去除方法
    用Notepad++打開文件,選擇 格式 -> 以UTF-8無BOM格式編碼,再保存就行。如下圖:
 
4. 在PHP類的項目中,自動處理BOM頭信息(只需要將此文件放在項目根目錄下,從瀏覽器訪問即可)
<</font>?php

if (isset($_GET['dir'])) { //設置文件目錄   
    $basedir = $_GET['dir'];
} else {
    $basedir = '.';
}

checkdir($basedir);


function checkdir($basedir) {
    if ($dh = opendir($basedir)) {
        while (($file = readdir($dh)) !== false) {
            if ($file != '.' && $file != '..') {
                if (!is_dir($basedir . "/" . $file)) {
                    echo "filename: $basedir/$file " . checkBOM("$basedir/$file") . "
";
                } else {
                    $dirname = $basedir . "/" . $file;
                    checkdir($dirname);
                }
            }
        }
        closedir($dh);
    }
}


function checkBOM($filename, $auto = 1) {
    $contents = file_get_contents($filename);
    $charset[1] = substr($contents, 0, 1);
    $charset[2] = substr($contents, 1, 1);
    $charset[3] = substr($contents, 2, 1);

轉載請注明文章來自織夢俠[秩名]作者的-UTF-8文件的BOM頭的來由及去除方法
聯系作者
取消
這個作者很懶什么也沒留下!
打賞作者
取消

本文作者無償奉獻,就打賞給我們織夢俠吧!

掃碼支付
掃碼打賞,建議金額1-10元

打開支付寶掃一掃,即可進行掃碼打賞哦

提醒:打賞金額將直接進入對方賬號,無法退款,請您謹慎操作。

織夢技巧   閱讀()  秩名
乐天堂官网 <必威>| <必威体育>| <必威官网>| <必威体育官网>| <必威体育app>| | | | | | | | | <乐天堂>| <乐天堂体育>| <乐天堂官网>| <乐天堂体育官网>| <乐天堂体育app>| | | | | | | | | <同乐城>| <同乐城体育>| <同乐城官网>| <同乐城体育官网>| <同乐城体育app>| | | | | | | | | <热博>| <热博体育>| <热博官网>| <热博体育官网>| <热博体育app>| | | | | | | | | <竞博>| <竞博体育>| <竞博官网>| <竞博体育官网>| <竞博体育app>| | | | | | | | | <贝博>| <贝博体育>| <贝博官网>| <贝博体育官网>| <贝博体育app>| | | | | <亚博>| <亚博体育>| <亚博官网>| <亚博体育官网>| <亚博体育app>| | | | | | | | | <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>