首页 / 知识
Python,Unicode和Windows控制台
2023-04-11 20:50:00

Python, Unicode, and the Windows console
当我尝试在Windows控制台中打印Unicode字符串时,出现 编辑:我正在使用Python 2.5。 注意:@ LasseV.Karlsen回答带有复选标记有点过时(从2008年开始)。 请谨慎使用下面的解决方案/答案/建议!! 截至今天(2016年1月6日),@ JFSebastian答案更为相关。
更新:Python 3.6实现PEP 528:将Windows控制台编码更改为UTF-8:Windows上的默认控制台现在将接受所有Unicode字符。在内部,它使用与下面提到的
该错误意味着您尝试打印的Unicode字符无法使用当前(
Windows控制台确实接受Unicode字符,如果配置了相应的字体,它甚至可以显示它们(仅限BMP)。
请参阅Python 3.4,Unicode,不同语言和Windows有什么用?
如果在您的情况下用
在Python 3.6+中,除非将 注意:这个答案有点过时(从2008年开始)。请小心使用以下解决方案!! 这是一个详细说明问题的页面和解决方案(在页面中搜索将sys.stdout包装到实例中的文本): PrintFails - Python Wiki 这是该页面的代码摘录:
有关该页面的更多信息,非常值得一读。
尽管有其他看似合理的答案建议将代码页更改为65001,但这不起作用。 (另外,使用 有关详细信息和可行的代码,请参阅此问题。 如果你对获得可靠的坏字符表示不感兴趣,可以使用类似的东西(使用python> = 2.6,包括3.x):
字符串中的错误字符将以Windows控制台可打印的表示形式进行转换。 下面的代码将使Python输出到控制台,即使在Windows上也是UTF-8。 控制台将在Windows 7上很好地显示字符,但在Windows XP上它将无法很好地显示它们,但至少它将起作用,最重要的是,您将在所有平台上从脚本获得一致的输出。您将能够将输出重定向到文件。 下面的代码在Windows上使用Python 2.6进行了测试。
只需在执行python脚本之前在命令行中输入此代码:
就像GiampaoloRodolà的答案一样,但更肮脏:我真的,真的打算花很长时间(很快)理解编码的整个主题以及它们如何应用于Windoze控制台, 目前我只想要sthg这意味着我的程序不会崩溃,而且我理解...而且还没有涉及导入太多异国情调的模块(特别是我使用的是Jython,所以有一半时间是Python事实证明,模块并不可用。
NB"pr"的类型比"print"短(并且输入的类型比"safeprint"短得多)......! 对于Python 2,请尝试:
对于Python 3,请尝试:
或者尝试win-unicode-console:
TL; DR:
我自己遇到了这个,在Twitch聊天(IRC)机器人上工作。 (Python 2.7最新) 我想解析聊天消息以便回复...
但也要以人类可读的格式将它们安全地打印到控制台:
这纠正了机器人抛出 你的问题的原因不是Win控制台不愿意接受Unicode(因为我这样做,因为我猜默认为Win2k)。它是默认的系统编码。试试这段代码,看看它给你的东西:
如果它说ascii,那是你的原因;-)
也许您可能还想在文件中指定编码:
编辑:更多信息可以在优秀的Dive into Python书中找到 Python 3.6 windows7:有几种启动python的方法,你可以使用python控制台(上面有python标识)或windows控制台(它上面写有cmd.exe)。 我无法在Windows控制台中打印utf8字符。打印utf-8字符会给我这个错误:
在尝试并且未能理解上面的答案后,我发现它只是一个设置问题。右键单击cmd控制台窗口的顶部,在选项卡 有点像J. F. Sebastian的答案,但更直接。 如果在打印到控制台/终端时遇到此问题,请执行以下操作:
詹姆斯苏拉克问道,
其他解决方案建议我们尝试修改Windows环境或替换Python的
在Windows 7下,可以使用Python 3.5打印Unicode而不抛出 print(text) Python现在将不可打印的Unicode字符显示为 xNN十六进制代码,而不是抛出异常,例如: 代替
注意:需要上面的 |
最新内容
相关内容
python如何比较两个字符串是否相等
python如何比较两个字符串是否相等,培训,工作,字符串,两个,下面,以上,方法,更多,内容,python在实际的开发工作中,经常会遇到要判定两个字符串python错误类型有哪些
python错误类型有哪些,异常,系统,培训,错误,代码,标准,检测,类型,程序,逻辑,python的错误有语法错误和逻辑错误语法错误程序执行过程中,pythonpython判断元素是否是字符串类型
python判断元素是否是字符串类型,培训,异常,类型,实例,字符串,数据类型,对象,元素,参数,序列,isinstance()是Python中的一个内建函数语法:isinpython判断字符串是否包含中文
python判断字符串是否包含中文,培训,检测,代码,字符串,中文,字符,范围,空格,原理,以上,原理:中文字符的编码范围是:\u4e00-\u9fff只要编码在python判断一个字符串是否包含另一
python判断一个字符串是否包含另一个字符串,培训,字符串,以上,方法,更多,内容,python判断一个字符串是否包含另一个字符串,常用的有两种方python判断字符串是否为小数的方法
python判断字符串是否为小数的方法,培训,代码,合法,小数点,小数,整数,字符串,方法,右边,左边,python想判断一个字符串是不是一个合法的小数,但python字符串是对象吗
python字符串是对象吗,培训,名称,设计,对象,函数,变量,实体,参数,物件,字符串,python中一切都是对象在python中下列语句其实都是一个共同点:i=python怎么判断是否为空字符串
python怎么判断是否为空字符串,密码,培训,字符串,空格,字符,用户名,方法,两边,长度,全部,判断python中的一个字符串是否为空,可以使用如下方法python字符串连接的方法有哪些
python字符串连接的方法有哪些,培训,字符串,基础,方式,两个,变量,函数,空白,语言,功能,python中有很多字符串连接方式,下面总结一下:最原始的字pythonsplit分割字符串
pythonsplit分割字符串,培训,连续,网址,字符串,方法,字符,参数,空格,表示,制表符,注意,这里所说的方法,指的是字符串类型str本身所提供的,由于涉python字符串有哪些表达方式
python字符串有哪些表达方式,培训,字符串,斜线,方式,引号,备注,字符,中间,后面,表示,主要是python中字符串的几种表达,表示方式。python的几种python判断某元素是否是字符串
python判断某元素是否是字符串,培训,异常,字符串,数据类型,元素,对象,类型,函数,实例,参数,python中判断某一元素属于哪种类型,可以使用isinst