校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 網站建設 > 建站知識 > UTF-8文件的BOM頭的來由及去除方法

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

POST TIME:2021-05-20 11:08

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頭的來由及去除方法
            utf-8(不含BOM頭)
            UTF-8文件的BOM頭的來由及去除方法
    
    從上圖的比較中,可以很明顯的看出,含BOM頭的文件多出三個字節 efbbbf。
 
3. BOM頭信息的去除方法
    用Notepad++打開文件,選擇 格式 -> 以UTF-8無BOM格式編碼,再保存就行。如下圖:
 
4. 在PHP類的項目中,自動處理BOM頭信息(只需要將此文件放在項目根目錄下,從瀏覽器訪問即可)
01 <</font>?php
02  
03 if (isset($_GET['dir'])) { //設置文件目錄  
04     $basedir = $_GET['dir'];
05 else {
06     $basedir = '.';
07 }
08  
09 checkdir($basedir);
10  
11  
12 function checkdir($basedir) {
13     if ($dh = opendir($basedir)) {
14         while (($file = readdir($dh)) !== false) {
15             if ($file != '.' && $file != '..') {
16                 if (!is_dir($basedir . "/" . $file)) {
17                     echo "filename: $basedir/$file " . checkBOM("$basedir/$file") . "
18 ";
19                 else {
20                     $dirname = $basedir . "/" . $file;
21                     checkdir($dirname);
22                 }
23             }
24         }
25         closedir($dh);
26     }
27 }
28  
29  
30 function checkBOM($filename, $auto = 1) {
31     $contents = file_get_contents($filename);
32     $charset[1] = substr($contents, 0, 1);
33     $charset[2] = substr($contents, 1, 1);
34     $charset[3] = substr($contents, 2, 1);
 



收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
主站蜘蛛池模板: 岢岚县| 浦江县| 西丰县| 宝应县| 应城市| 宜城市| 彰化市| 大足县| 延安市| 东莞市| 克什克腾旗| 特克斯县| 兰溪市| 桃江县| 南投县| 彝良县| 常熟市| 芜湖县| 潢川县| 八宿县| 米脂县| 周宁县| 西充县| 星座| 洞头县| 高青县| 准格尔旗| 彰化县| 西安市| 衡南县| 肥西县| 新乡市| 鲁甸县| 黄平县| 辽阳县| 安顺市| 米脂县| 利辛县| 黔南| 循化| 专栏|