小编Sme*_*ety的帖子

Python 3 UnicodeEncodeError:'ascii'编解码器无法编码字符

我刚刚开始学习Python,但我已经遇到了麻烦.
我有一个只有一个命令的简单脚本:

#!/usr/bin/env python3
print("P?íliš žlu?ou?ký k?? úp?l ?ábelské ódy.") # Text in Czech 
Run Code Online (Sandbox Code Playgroud)

当我尝试运行此脚本时:

python3 hello.py 
Run Code Online (Sandbox Code Playgroud)

我收到这条消息:

Traceback (most recent call last):
  File "hello.py", line 2, in <module>
    print("P\u0159\xedli\u0161 \u017elu\u0165ou\u010dk\xfd k\u016fn \xfap\u011bl \u010f\xe1belsk\xe9 \xf3dy.")
UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-2: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我正在使用Kubuntu 16.04和Python 3.5.2.当我尝试这个:export PYTHONIOENCODING=utf-8它工作但只是暂时的.下次我打开bash时遇到了同样的错误.

根据https://docs.python.org/3/howto/unicode.html#the-string-type,Python 源代码的默认编码是UTF-8.
所以我把源文件保存为id UTF-8,Konsole设置为UTF-8但我仍然得到错误!
即使我补充说

# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)

从一开始它什么都不做.

另一个奇怪的事情:当我只使用python而不是python3运行它时,它可以工作.如何在Python 2.7.12中工作而不是在3.5.2中工作?

永久解决这个问题的任何想法?谢谢.

unicode encoding locale utf-8 python-3.5

7
推荐指数
1
解决办法
5650
查看次数

标签 统计

encoding ×1

locale ×1

python-3.5 ×1

unicode ×1

utf-8 ×1