博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 汉字编码问题
阅读量:5019 次
发布时间:2019-06-12

本文共 586 字,大约阅读时间需要 1 分钟。

问题描述:我要判断的两个字符串是否相等(‘区站号’==‘区站号’),第一个值是我从txt文件导入的数据,第二个值是我自己定义的并使用decode('utf-8')得到的,如果你用print函数打印这两个变量,则都是‘区站号',但是if语句判断,这两个值是不相等的。用直接显示的方式,u'\u533a\u7ad9\u53f7' 和 u'\ufeff\u533a\u7ad9\u53f7'的区别。可以使用下述方法解决。

引用:http://blog.chinaunix.net/uid-7208369-id-2658427.html

原来,某些软件,如notepad,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。

因此我们在读取时需要自己去掉这些字符,python中的codecs module定义了这个常量:
# coding=gbk
import codecs
data = open("Test.txt").read()
if data[:3] == codecs.BOM_UTF8:
 data = data[3:]
print data.decode("utf-8")
结果:abc中文和

转载于:https://www.cnblogs.com/arcserver/p/6606172.html

你可能感兴趣的文章
Python3自动化测试生产测试报告
查看>>
玩转log4j
查看>>
window下查杀占用端口的进程
查看>>
2018年总结&2019年计划
查看>>
hdu 2795 Billboard(线段树+单点更新)
查看>>
本博客所有技术文章皆转自网络
查看>>
sass最佳实践
查看>>
移动端笔记
查看>>
Behaviac 腾讯开源行为树 简介(给策划)
查看>>
js:鼠标事件
查看>>
bzoj 2005: [Noi2010]能量采集
查看>>
2016级算法第一次练习赛-E.AlvinZH的儿时回忆——蛙声一片
查看>>
2016级算法第三次上机-G.Winter is coming
查看>>
SSAS使用MDX生成脱机的多维数据集CUB文件
查看>>
ACM_hdu1102最小生成树练习
查看>>
MyBatis源码分析(一)--SqlSessionFactory的生成
查看>>
android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
查看>>
CTF常用工具之汇总
查看>>
java的面向对象 (2013-09-30-163写的日志迁移
查看>>
HDU 2191 【多重背包】
查看>>