zoukankan      html  css  js  c++  java
  • xml 列表 index中文编码问题

    import xml.etree.ElementTree as ET
    import os
        classes = ["线纹",
               "打砂纹",
               "砂轮纹",
               "抛光不足",]
        for obj in root.iter('object'):
                    cls = obj.find('name').text
                    cls_id = classes.index(cls) if (cls in classes) else -1
    

    今天对xml文本进行数据查找的时候出现问题,读取xml进行字符串匹配的时候出现无法匹配到的现象,通过IDE查看发现在转换中文文本时,出现utf-8 zwnbsp问题

    UTF-8有一个BOM(Byte Order Mark)的问题。

    在Unicode编码中有一个叫做"zero-width no-break space (ZWNBSP)"的字符,它的编码是0xFEFF。而0xFEFF在是一个实际中不存在的字符,所以不应该出现在实际传输中。UCSUCS (Unicode Character Set) 规范建议我们在传输字节流前,先传输字符"ZWNBSP"。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此字符"ZWNBSP"又被称作BOM。

    解决方法:

    从第二位开始取即可,更改代码如下

    cls = obj.find('name').text
    if cls not in classes:
        cls = cls[1:]
    cls_id = classes.index(cls) if (cls in classes) else -1
    
  • 相关阅读:
    java笔记
    java面向对象
    Oracle数据库基础
    Java中的集合和常用类
    Java面向对象的三个特征
    Java中的类与对象
    Java中的冒泡排序
    JAVA中的一些内置方法
    JAVA中的数据类型
    SSH整合
  • 原文地址:https://www.cnblogs.com/MorganMa/p/14803320.html
Copyright © 2011-2022 走看看