Python 3.6.1 - 将字符串打印为人类可读的文本、特殊字符

Python 3.6.1 - Printing string as human readable text, special characters

我正在构建一个小的 django 1.1 应用程序(虽然我相信这个问题特定于 Python),我已经开始使用命令来控制获取和分类数据的流程。我还希望使用第三个命令打印某种摘要。我使用的是 macOS 10.12.3

我的问题来自使用

获取文本数据并将其打印到控制台或文档
> or >>

在控制台中。

我 运行 这些脚本使用别名 Python 3.6.1

我正在使用 Tweepy api,但希望这不相关。

这些片段应该可以说明我希望解决的问题:

print(type(data))
print(type(data.text))
try:
    print(data.text)
except UnicodeEncodeError:
    print("no printing today :(")
print(type(data.text.encode('UTF-8')))
print(data.text.encode('UTF-8'))

这输出:

<class 'tweepy.models.Status'>
<class 'str'>
no printing today :(
<class 'bytes'>
b'kontroll p\xc3\xa5 ... v\xc3\xa5pen.'

难看的应该都是'å'字

这是将抛出的错误:

UnicodeEncodeError: 'ascii' codec can't encode character '\xe5' in position 223: ordinal not in range(128)

它说 'ascii' 编解码器,但是(在我的 Python 3.6.1 脚本中):

print(sys.getdefaultencoding())

输出:

utf-8

运行

print(sys.getdefaultencoding())

再次在 Python 2.7.10 输出:

ascii

因此抛出的错误与 2.7.10 的输出匹配。我不排除我对默认编码器的作用可能是错误的可能性

我也试过了

export LOCALE="no_NB.UTF-8"

试图查看这是否可能是由我的系统引起的(除非我误解了它的作用)。我没有将此写入任何文件,认为它会在当前会话中持续存在。

是否使用了错误的编码器?可能是我的终端编码?如何将我的特殊字符写入终端和文件?弦真的这么难弄好吗?

非常感谢任何帮助!!

设置

export LC_ALL=no_NO.UTF-8
export LANG=no_NO.UTF-8

在我的 .bash_profile 中现在允许我在我的终端中看到我想要的字符并且它也成功地回显到一个文件中。