python中烦人的锟斤拷(\xef\xbf\xbd)
2016-07-26 13:00
399 查看
首先要知道\xef\xbf\xbd是啥东西
由此我们可以知道\xef\xbf\xbd是utf8编码的'\uFFFD',那么这个'\uFFFD'是啥东西呢?
原来是因为Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACTER。
所以,如果你的文本中有一些字符是unicode表示不了的,在python程序读入的时候就会转成\xef\xbf\xbd,如果在某些地方变成了unicode,那么内部就会变成
u'\ufffd',然而你再也不能转为str了。
如果你碰巧用到这些字符串作为字典的key,那么就会报key_error的错误了。
>>> u'\uFFFD'.encode('utf-8') '\xef\xbf\xbd'
由此我们可以知道\xef\xbf\xbd是utf8编码的'\uFFFD',那么这个'\uFFFD'是啥东西呢?
原来是因为Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACTER。
>>> "\xef\xbf\xbd".decode("utf-8") u'\ufffd'
所以,如果你的文本中有一些字符是unicode表示不了的,在python程序读入的时候就会转成\xef\xbf\xbd,如果在某些地方变成了unicode,那么内部就会变成
u'\ufffd',然而你再也不能转为str了。
如果你碰巧用到这些字符串作为字典的key,那么就会报key_error的错误了。
相关文章推荐
- python 3 安装 scrapy 并运行成功
- python学习——编写ORM
- 371. Sum of Two Integers [easy] (Python)
- Python爬虫学习心得
- python中continue和break的使用示例
- Python升级、iPython安装和python自动补全
- python 调用zabbix api接口实现主机的增删改查
- PyCharm2016.3专业版注册码
- ubuntu下怎么解决python "Non-ASCII character"错误
- Python学习笔记——文件写入和读取
- ipython notebook设置工作路径和自动保存.py文件 ipython_notebook_config.py
- Python(1):入门
- 【Python学习】python+Eclipse+pydev环境搭建
- Python 练习册,每天一个小程序(1)
- python学习第十天 -- 函数
- 列表、元组以及字符串
- python脚本编程:批量复制或删除文件
- python 元组列表字典的区别
- Python----压缩与解压缩文件
- python windows系统时间同步