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 ...
随机推荐
- busybox date 时间的加减
1.下载安装busybox: # wget http://busybox.net/downloads/busybox-1.29.3.tar.bz2 # tar -jxvf busybox-.tar.b ...
- 将 spring boot 安装为 systemd 服务
[root@ecs-11-132 system]# cat /etc/systemd/system/push-gateway-3.0.0.service [Unit] Description=app- ...
- c++第四次作业:类的继承
一.定义 类的继承:是从新的类从已有类那里得到已有的特性. 二.方式 1.公有继承:当类的继承方式为公有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问. 例: ...
- P2634 树上路径长度为3的倍数的点对数 点分治
在计算答案的时候维护一个数组num num[i]为当前所有点距离根距离%3的数量 则当前块的答案为num[0]*num[0]+2*num[1]*num[2] #include<bits/stdc ...
- dsoframer控件注册,解注册和检查注册情况
public class DsoframerHelper { private static string dsoframerPath = System.Windows.Forms.Applicat ...
- 安装WIN10+Ubuntu18.04安装教程(实测有效)
转载原文链接:https://www.cnblogs.com/masbay/articles/10745170.html 安装过程中尤其注意分区时候的挂载点一定要选对!!!选择Ubuntu的EFI所在 ...
- Echarts 饼状图 字体重叠问题
原理:设置最小扇形的大小,把他撑起来 在 series 里 使用 minAngle: 38, //最小的扇区角度(0 ~ 360),用于防止某个值过小导致扇区太小影响交互 角度自己调好就可以了 个人笔 ...
- docker run always
https://www.cnblogs.com/kaishirenshi/p/10396446.html
- Maven 安装 与 使用
下载地址:http://maven.apache.org/download.cgi 下载完成后,配置环境变量 (前提 已经安装JDK )后才能使用. 进入 bin 目录 复制 路径 添加到环境变量中 ...
- ajax给增删修加入非空
<span>标签加入 <script type="text/javascript"> $(".inp2").click(function ...