Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在windows控制台中向语言显示本机口音?_Python_Unicode - Fatal编程技术网

Python 如何在windows控制台中向语言显示本机口音?

Python 如何在windows控制台中向语言显示本机口音?,python,unicode,Python,Unicode,错误: 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 打印“Español\nPortuguês\nItaliano”。编码('utf-8')) UnicodeDecodeError:“ascii”编解码器无法解码位置4中的字节0xf1:序号不在范围内(128) 我正在尝试在Windows中制作一个多语言控制台程序。这可能吗? 我也用utf-8编码保存了这个文件,我得到了同样的错误 *编辑 我只是在这个程序中输出文本。我改成lucida字体,我一直得到这个: 我只是在寻找一种在wind

错误:

回溯(最近一次呼叫最后一次): 文件“”,第1行,在 打印“Español\nPortuguês\nItaliano”。编码('utf-8')) UnicodeDecodeError:“ascii”编解码器无法解码位置4中的字节0xf1:序号不在范围内(128)

我正在尝试在Windows中制作一个多语言控制台程序。这可能吗? 我也用utf-8编码保存了这个文件,我得到了同样的错误

*编辑 我只是在这个程序中输出文本。我改成lucida字体,我一直得到这个:

我只是在寻找一种在windows控制台中正确显示外语的便携式方法。如果它能跨平台,那就更好了。我认为utf-8是答案,但你们都告诉我字体等也起了作用。所以有人有明确的答案吗?

这对我来说很有用:

print "Español\nPortuguês\nItaliano".encode('utf-8')
您可能想尝试使用chcp 65001和&u program.py运行它,也可以尝试将命令提示符字体更改为Lucida Console。

简短回答:

# coding=utf-8
print "Español\nPortuguês\nItaliano"
第一行告诉Python您的文件是用UTF-8编码的(编辑器必须使用相同的设置),这一行应该始终位于文件的开头


另一件事是,Python2知道两个不同的
basestring
对象-
str
unicode
。前缀
u
将创建这样一个unicode对象,而不是默认的str对象,然后可以将其编码为UTF-8(但是直接打印unicode对象也可以)

# -*- coding: utf-8 -*-
print u"Español\nPortuguês\nItaliano".encode('utf-8')
在Windows控制台上使用UTF-8很困难

  • 您必须将命令提示符字体设置为Unicode字体(默认情况下,唯一可用的字体是Lucida Console),否则您将获得IBM437编码
  • chcp 65001
  • 修改编码。_别名将“cp65001”视为UTF-8的别名

即使这样,它似乎也不正常。

我在windows 7上,在属性->字体上,我只有:Console、lucida和光栅字体。它们都不能正确显示,我得到了奇怪的符号。也许这个链接可以帮助你:这只会“起作用”“如果您的控制台设置为utf-8。在任何地方使用unicode并在输出上编码是一个更加健壮的解决方案。好的,我打开cmd.exe,然后键入chcp 65001这“更改了代码页”,现在这段代码将正确显示它:print u“Español\nPortuguês\nItaliano”现在,在编辑器中使用utf-8编码的.py文件,我必须找到一种通过python自动设置此代码页的方法……下面是
print u"Español\nPortuguês\nItaliano".encode('utf-8')