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’)
ElementTree 无法处理中文的更多相关文章
- 解决 ElementTree 无法处理中文
解决 ElementTree 无法处理中文,UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 76-99: o ...
- python xml.etree ElementTree解析 编辑 xml
python有很多种xml解析方式,不过感觉etree的ElementTree 用起来最方便. #coding=utf-8 from xml.etree import ElementTree impo ...
- Python3中文教程
搜索 此文档来源自网络 安装 PYTHON❝ Tempora mutantur nos et mutamur in illis. (时光流转,吾等亦随之而变.) ❞ — 古罗马谚语 深入欢迎来到 Py ...
- win10 环境 gitbash 显示中文乱码问题处理
gitbash 是 windows 环境下非常好用的命令行终端,可以模拟一下linux下的命令如ls / mkdir 等等,如果使用过程中遇到中文显示不完整或乱码的情况,多半是因为编码问题导致的,修改 ...
- 网页提交中文到WEB容器的经历了些什么过程....
先准备一个网页 <html><meta http-equiv="Content-Type" content="text/html; charset=gb ...
- opencv在图像显示中文
在图像定位和模式识别时,经常需要把结果标注到图片上,标注内容可以是数字字母.矩形框等(opencv支持的)或者是中文汉字(借助freetype). 1.显示数字/矩形框 #include <op ...
- solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件
昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务:今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索. 在solr服务中集成IKAnalyzer中文分词器的步骤: ...
- Windows server 2012 添加中文语言包(英文转为中文)(离线)
Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...
- java中文乱码解决之道(一)-----认识字符集
沉寂了许久(大概有三个多月了吧),LZ"按捺不住"开始写博了! java编码中的中文问题是一个老生常谈的问题了,每次遇到中文乱码LZ要么是按照以前的经验修改,要么则是baidu.c ...
随机推荐
- task_struct原码解读
该结构体在linux中的路径为如下,如果是本地也可以根据以下子目录找到task_struct结构体,该结构体源码中在600多行 https://github.com/torvalds/linux/bl ...
- python读取txt文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x8e in position 8: illegal multibyte sequence
python读取文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x8e in position 8: illegal multibyte ...
- js抽奖,跑马灯
分享自己写的跑马灯抽奖. HTML代码 <!--首先将一个div的背景设为一个圆形--> <div style=" width:240px; height:232px; b ...
- 不能使用 float 和 double 来表示金额等精确的值
不能使用 float 和 double 来表示金额等精确的值 关于面试,金额用什么数据类型? 不是 doube,更不是 float ,而是用 BigDecimal.对于金融项目,对于金额,误差是不能容 ...
- 第七章 路由 77 路由-使用children属性实现路由嵌套
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 《Python基础教程》第二章:列表和元组(1)
列表可以修改,元组则不能 字符串就是一个由字符组成的序列 使用分片操作来访问一定范围内的元素,分片操作的实现需要提供两个索引作为边界,第一个索引的元素是包含在分片内的,而第二个不包含在分片内. 如果分 ...
- 【算法学习笔记】RMQ问题与ST表
\(0.\) RMQ问题 P1816 人话翻译 给定一个长度为\(n\)的数列\(a\),然后有\(m\)组询问,每次询问一个区间\([l,r]\)的最小值. 其中\(m,n\leq10^5\) \( ...
- dockerfile 与 docker-compose的区别
https://blog.csdn.net/londa/article/details/91815208 先简单理解 docker 的使用过程,它分为镜像构建与容器启动. 镜像构建:即创建一个镜像,它 ...
- (四) 结构化查询语言SQL——2
3)ORDER BY排序语句 通常,查询的结果是以无序的方式显示的,有时需要将查询结果按照一定次序来进行排序.ORDER BY就可以用上了,例如查询课程号为202的课程成绩的所有信息,并按照成绩降序排 ...
- netstat Recv-Q和Send-Q判断包在哪端
通过netstat -anp可以查看机器的当前连接状态: Active Internet connections (servers and established) Proto Recv-Q Se ...