XML亂碼問題解析

XML亂碼問題和encoding的理解這篇博客已經講的很明白了,總結一下讀取XML選取編碼方式的邏輯就是:

  • 如果文擋有 BOM ,就定義了文件編碼,則採用此編碼;
  • 如果沒有 BOM ,就查看文件頭 encoding 聲明的編碼,如聲明爲<?xml version="1.0"
    encoding="GB2312"?>
    ,則採用 GB2312 編碼;
  • 如果上述兩個都沒有,就默認採用 UTF-8 編碼。

需要補充的有:

  • Linux如何查看文件編碼:file -i config.xml,結果示例config.xml: application/xml; charset=utf-8,可知此文件的編碼是 UTF-8
  • 爲什麼 ISO-8859-1 編碼的文件可以被 GBKGB2312 編碼正確讀取呢?原因是 GBKGB2312 專門用來表示漢字,是雙字節編碼,而英文字母編碼和 ISO-8859-1 一致(兼容 ISO-8859-1 編碼)。其中 GBK 編碼能夠用來同時表示繁體字和簡體字,而 GB2312 只能表示簡體字,GBK 是兼容 GB2312 編碼的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章