ElementTree 無法處理中文


ElementTree.fromstring()  導入xml格式時,是可以選擇解析parser的編碼的,並且 它解析出來的node類型是 嚴謹且嚴格的,不會

自己內部全部轉換成str,比如 9.87 會解析成float,而不是str字符串9.87,包含有漢字的<Name>李偉</Name>  這樣的格式,解析出的“李偉 ”  是python的unicode類型,不會設置字符串的編碼格式。!!!重點

 

另外使用ElementTree.tostring() 到處xml字符串格式時,可以指定字符串格式,以及導出成xml還是text類型

ElementTree.tostring(tree, ‘utf-8’, ‘xml’ )

建議:

1.  凡是涉及到python 中文的,都以unicode來表示,只有當將字符寫入文件,寫DB 或者網絡傳輸時,才涉及到將 unicode類型 設置UTF-8 或者ASCII或者GBK 等的編碼

2.  當涉及到 中文字符串長度計算的時候:

      1.  可以將 unicode 中文------->轉換成 utf-8,判斷 字符值 是不是在  u'\u4e00'    和 u'\u9fa5' ,在這之間的都是漢字

      2 . 或者 將unicode 中文------->轉換成 GBK 編碼, 每個漢字2字節偏移,來截斷或者偏移

3. 編碼之后(utf-8  或者GBK)的漢字是有編碼屬性的,需要反向 decode成 unicode類型,至於怎么保存在字段或者DB中,需要再次decode(),一般是decoe(‘utf-8’)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM