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’)