Python 3 UnicodeEncodeError:’ascii’编解码器无法编码字符
我刚刚开始学习
Python,但我已经遇到了麻烦.
我有一个只有一个命令的简单脚本: #!/usr/bin/env python3 print("P?íli? ?lu?ou?ky k?ň úpěl ?ábelské ódy.") # Text in Czech 当我尝试运行此脚本时: python3 hello.py 我收到这条消息: Traceback (most recent call last): File "hello.py",line 2,in <module> print("Pu0159xedliu0161 u017eluu0165ouu010dkxfd ku016fn xfapu011bl u010fxe1belskxe9 xf3dy.") UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-2: ordinal not in range(128) 我正在使用Kubuntu 16.04和Python 3.5.2. 根据https://docs.python.org/3/howto/unicode.html#the-string-type # -*- coding: utf-8 -*- 从一开始它什么都不做. 另一个奇怪的事情:当我只使用python而不是python3运行它时,它可以工作.如何在Python 2.7.12中工作而不是在3.5.2中工作? 永久解决这个问题的任何想法?谢谢. 解决方法
感谢Mark Tolen和Alastair McCormack建议问题所在.问题出在区域设置中.
当我运行语言环境时,输出是: LANG=C LANGUAGE= LC_CTYPE="C" LC_NUMERIC=cs_CZ.UTF-8 LC_TIME=cs_CZ.UTF-8 LC_COLLATE=cs_CZ.UTF-8 LC_MONETARY=cs_CZ.UTF-8 LC_MESSAGES="C" LC_PAPER="C" LC_NAME="C" LC_ADDRESS="C" LC_TELEPHONE="C" LC_MEASUREMENT=cs_CZ.UTF-8 LC_IDENTIFICATION="C" LC_ALL= 此“C”是使用ANSI charmap的默认设置.这就是问题所在.运行locale charmap给了我:ANSI_X3.4-1968,它不能显示非英文字符. 我将这些行添加到/ etc / default / locale: LANGUAGE=cs_CZ.UTF-8 LC_ALL=cs_CZ.UTF-8 然后,您必须重新启动会话(注销并进入)才能应用这些设置. 运行语言环境现在返回此输出: LANG=C LANGUAGE=cs LC_CTYPE="cs_CZ.UTF-8" LC_NUMERIC="cs_CZ.UTF-8" LC_TIME="cs_CZ.UTF-8" LC_COLLATE="cs_CZ.UTF-8" LC_MONETARY="cs_CZ.UTF-8" LC_MESSAGES="cs_CZ.UTF-8" LC_PAPER="cs_CZ.UTF-8" LC_NAME="cs_CZ.UTF-8" LC_ADDRESS="cs_CZ.UTF-8" LC_TELEPHONE="cs_CZ.UTF-8" LC_MEASUREMENT="cs_CZ.UTF-8" LC_IDENTIFICATION="cs_CZ.UTF-8" LC_ALL=cs_CZ.UTF-8 并运行locale charmap返回: UTF-8 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |