關於XML解析報錯問題(LF CRLF)

2021-10-03 03:45:27 字數 1054 閱讀 6527

報錯內容的主要部分:

unicodedecodeerror: 『gbk』 codec can』t decode byte 0x80 in position

123: illegal multibyte sequence

問題產生

在做目標檢測時,使用的資料集來自網路,在將xml和轉換到特定格式時,有些xml檔案解析出現了問題。像這樣:

我發現,當我未使用labelimg工具,而直接通過記事本手動修改xml檔案時,或者通過指令碼批量修改xml檔案時就會出現這個問題。

分析問題

以下為兩個xml檔案,裡面的內容基本一樣、格式完全相同,仔細觀察發現:

可以正常解析的xml檔案編碼格式是lf

而不能正常解析的xml檔案編碼格式是crlf

解釋以下(參考)

眾所周知,windows作業系統採用兩個字元來進行換行,即crlf;unix/linux/mac os x作業系統採用單個字元lf來進行換行;另外,macintosh作業系統(即早期的mac作業系統)採用單個字元cr來進行換行。

解決方法

在命令視窗輸入

for /r 檔案路徑 %g in (*.c *.cc *.h *.xml) do dos2unix "%g" # *.c *.cc *.h *.xml 表示任意匹配這些字尾名的檔案
當出現以下內容,說明轉換成功:

oracle 解析soap報文XML報錯

ora 31011 xml parsing failed ora 19202 error occurred in xml processing 1 專案做和ebs的介面,ebs提供乙個webservice服務。在資料庫中訪問ebs的webservice 報文解析沒有問題 突然一天請求回來的xml檔案...

關於android 下 XML的解析問題

在做乙個簡訊備份還原的工具 簡訊備份的時候用的是xmlserializer寫入xml檔案中 在還原的時候我用的是xmlpullparser解析xml 但有乙個問題我想獲取到簡訊的總數量 於是我就加上了serializer.attribute null,max max 得到了備份時候簡訊的總數目 那麼...

關於XML的解析

最近由於做新業務的需要,在研究高通平台上的xml lib。這套庫提供了完整的對於xml檔案和樹形資料結構之間的編譯碼轉換。使用的演算法非常通用化,並且為平台相容性提供了抽象層的介面。這套庫在高通的release 中發布,應該達到商用水平,可以作為後續開發的乙個重要支撐。在研究 的時候,發現使用的是完...