關於UTF-8編碼致使網頁解析出現空白的問題

今天在作Magento模板的時候,由於涉及到中文,因而在notepad++下面將文件轉換成了,utf-8編碼格式。可是刷新網頁以後就發現解析出來的源碼多了幾個空格。如圖sql

四處查看模板文件,也沒發現什麼端倪。只有耐着頭皮繼續作咯。。。cookie

還好改編碼的不止一個,再修改完另一個跟搜索相關的文件以後,發現出現了一樣的問題,因而意識到問題可能出如今編碼上。去羣裏面問了一下,高手提示直接轉換成無BOM的編碼格式就能夠了,因而轉換保存,果真oksession

這裏面有什麼玄機呢,上網搜尋了一番,截取部分感受比較實用的貼一下吧:編輯器

  
  
  
  
  1. UTF-8編碼的文件中,BOM佔三個字節。若是用記事本把一個文本文件另存爲UTF-8編碼方式的話,
  2. 用UE打開這個文件,切換到十六進制編輯狀態就能夠看到開頭的FFFE了。這是個標識UTF-8編碼文件的好辦法,
  3. 軟件經過BOM來識別這個文件是不是UTF-8編碼,不少軟件還要求讀入的文件必須帶BOM。但是,仍是有不少軟件不能識別BOM。 
  4.  
  5. 在Firefox早期的版本里,擴展是不能有BOM的,不過Firefox 1.5之後的版本已經開始支持BOM了。
  6. 如今又發現,PHP也不支持BOM。PHP在設計時就沒有考慮BOM的問題,也就是說他不會忽略UTF-8編碼的文件開頭BOM的那三個字符。 
  7.  
  8. 因爲必須在在Bo-Blog的wiki看到,一樣使用PHP的Bo-Blog也同樣受到BOM的困擾。
  9. 其中有提到另外一個麻煩:「受COOKIE送出機制的限制,在這些文件開頭已經有BOM的文件中,
  10. COOKIE沒法送出(由於在COOKIE送出前PHP已經送出了文件頭),因此登入和登出功能失效。
  11. 一切依賴COOKIE、SESSION實現的功能所有無效。」這個應該就是Wordpress後臺出現空白頁面的緣由了,
  12. 由於任何一個被執行的文件包含了BOM,這三個字符都將被送出,致使依賴cookies和session的功能失效。 
  13.  
  14. 解決的辦法嘛,若是隻包含英文字符(或者說ASCII編碼內的字符),就把文件存成ASCII碼方式吧。
  15. 用UE等編輯器的話,點文件->轉換->UTF-8轉ASCII,或者在另存爲裏選擇ASCII編碼。
  16. 若是是DOS格式的行尾符,能夠用記事本打開,點另存爲,選ASCII編碼。若是包含中文字符的話,能夠用UE的另存爲功能,
  17. 選擇「UTF-8 無 BOM」便可。 

相信看了上面 就會明白,爲何多冒出來3個空格了吧。還有記得在編輯網頁文件的時候,若是選擇utf-8編碼,儘可能選擇 無BOM的編碼方式吧 :-)ide

好了,問題解決了  思惟又轉移到其餘東西上面了,費了很多時間,這樣可不太好.繼續模板吧 :(編碼

相關文章
相關標籤/搜索