XML檔案編碼問題

2021-09-07 04:22:32 字數 1124 閱讀 2607

這兩天的過程中的乙個專案,以解決編碼格式ansi的xml當檔案。我遇到了一些問題。下面的例子現在將總結分析過程。

通過win7記事本或notepad++建立乙個xml檔案test_source:

xml version="1.0" encoding="utf-16"?> coffeecat

"測試"

能夠看到在xml檔案的第一行。宣告編碼格式為utf-16。也就是unicode,使用ie瀏覽器開啟test_source失敗。

通過ultra edit將上述已建立的xml另存為test_ue,在儲存時,顯式的設定編碼為utf-16。通過瀏覽器卻能直接開啟,這是為什麼?

在網上查閱了一些資料,問題可能出在xml檔案頭中宣告的字元編碼與實際儲存檔案的編碼格式不符。

驗證:test_source:

test_ue:

當中前兩位標示出了檔案實際儲存格式的不同,以3c 3f開頭的檔案為ansi格式儲存的檔案,而以ff fe開頭的檔案是unicode little endian格式儲存的。

結論:要成功使用ie瀏覽器開啟xml檔案,一定要確保xml檔案的格式宣告與實際儲存格式一致,建議在編輯xml檔案時,盡量使用ultra edit等專業的工具進行。假設不能確定檔案期望的儲存格式,能夠將xml中的格式宣告部分(encoding="utf-16")刪掉。這樣xml檔案也能夠在ie瀏覽器中開啟。(能夠臨時解決這個問題。但不建議,可能引起的問題未知)

額外的:

在工作中,碰到了須要解析乙份ansi編碼格式的xml檔案,如上述的test_source.xml。當中包括了中文字元。為了不影響解析的功能,無法通過ultra edit將其編碼格式改動為unicode。可是專案須要這份xml檔案能夠隨時通過ie瀏覽器檢視。該怎麼辦呢?

問題還是出在xml檔案的格式宣告上,既然實際檔案為ansi,與宣告中的encoding="utf-16「不符,那麼應該將宣告的編碼格式改為與ansi一致的就可以。既然要與包括中文的ansi編碼格式相符,自然想到了漢子編碼字符集gb2312,將encoding="utf-16「改動為encoding="gb2312「,就可以使用ie瀏覽器開啟xml檔案了。

或者使用除了包括中文字元還包括繁體、日、韓文本字元的更全面的字符集gbk。

參考資料:

XML編碼問題

當時用ie5.0或者更高版本瀏覽xml文件時,可能會遇到兩中不同的編碼錯誤 在文字內容中發現乙個非法字元 an invalid character was found in text content 如果你的xml文件和你的xml文件的編碼格式不匹配就可能導致錯誤發生。通常情況是,xml文件包含一些...

有關XML的編碼問題

由於xml文件中可以包含外語字母,如挪威語 或法語 因此要讓你的xml分解器理解這些字母,就應該把xml文件儲存成unicode 統一的字元編碼標準 1 windows 95 98 記事本 windows 95 98 記事本不能將檔案儲存成unicode 格式。你可以用notepad 編輯和儲存包含...

關於xml的編碼問題

昨天在進行蕭山校產的報表配置的時候遇到乙個問題,我要求輸出的xml檔案中保留我原來的內容 內容中包括有很多的空格 但是dom4j在輸出檔案時自動將這些空格去除了,經研究有以下發現 當我們在用dom4j處理xml檔案輸出的時候可能會遇到以下的問題,就是我們要求每個element中的text保留我寫入的...