報錯內容的主要部分:
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 中發布,應該達到商用水平,可以作為後續開發的乙個重要支撐。在研究 的時候,發現使用的是完...