【问题标题】:(Python 2.7)How to solve :UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 6: ordinal not in range(128)(Python 2.7)如何解决:UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 6: ordinal not in range(128)
【发布时间】:2018-08-25 07:25:14
【问题描述】:

这是我的问题:

    if not line.startswith('  File "<frozen importlib._bootstrap'))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xbb in position 45: ordinal not in range(128)

这个方法我试过了:

import sys  
reload(sys)  
sys.setdefaultencoding('utf8')

但是好像在2.7版本上不行

【问题讨论】:

标签: python unicode


【解决方案1】:

您将从学习字符串编码中受益。
也就是说,Python 2.7 中的某些东西大部分时间都可以解决这些问题。

from __future__ import unicode_literals

这必须是 Python 模块中的第一条语句。它将模块中所有字符串的数据类型更改为Unicode。

请注意阅读pros and cons
一般来说,如果您开始一个新项目,您会很好,但在现有(尤其是大型)项目中引入这种更改可能是一项艰巨且耗时的任务。

还有一件事——现在开始一个新的 Python 项目时,你真的应该考虑在 Python 3 中进行。Python 2.7 has been moved to 2020 的生命周期即将结束,但距离现在只有 2 年。 Python 3 有许多有趣的特性和改进。您会发现重要的是 str 在 Python 3 中是 Unicode - 这意味着编码问题不会经常发生。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2013-12-31
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多