最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
python中的编码问题解决方法
时间:2014-03-20 编辑:简简单单 来源:一聚教程网
在py2.7的项目中用了__future__模块中的 unicode_literals 来为兼容py3.x做准备,今天遇到一个UnicodeEncodeError的错误,跟了下,发现这个小坑值得注意。是怎么样的一个坑呢?跟着代码看看。顺便深究一下原理。
1. 未引入unicode_literals版本
代码如下 | 复制代码 |
#coding:utf-8 now = datetime.now() |
这段代码可以正常执行输出: 03月12日 21:53
2. 引入unicode_literals
代码如下 | 复制代码 |
#coding:utf-8 now = datetime.now() |
抛出如下错误:
Traceback (most recent call last):
File "unicode_error_demo2.py", line 7, in
print now.strftime('%m月%d日 %H:%M')
UnicodeEncodeError: 'ascii' codec can't encode character u'u6708' in position 2: ordinal not in range(128)
3. 解决方案一:设置运行时编码为utf-8
代码如下 | 复制代码 |
#coding:utf-8 reload(sys) now = datetime.now() |
正常执行
4. 解决方案二: 使用byte string
代码如下 | 复制代码 |
#coding:utf-8 now = datetime.now() # 或者这样也行 |
-
上一个: php防止网站被f5刷新的例子
-
下一个: python日期时间转换程序
相关文章
- Base64编码的深入认识与理解 06-03
- UTF-8编码怎么去掉BOM头? 03-22
- 解决Django1.6访问static内容编码错误的办法 03-21
- 固定语言编码、字号、字体 05-14
- 谈谈Unicode编码(简要解释UCS、UTF、BMP、BOM等名词) 05-14
- 哈夫曼编码与译码 04-26