如何在windows的控制台中显示语言的本地口音?

2024-05-23 21:46:44 发布

您现在位置:Python中文网/ 问答频道 /正文

print "Español\nPortuguês\nItaliano".encode('utf-8')

错误:

Traceback (most recent call last): File "", line 1, in print "Español\nPortuguês\nItaliano".encode('utf-8') UnicodeDecodeError: 'ascii' codec can't decode byte 0xf1 in position 4: ordinal not in range(128)

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

*编辑 我只是在这个程序中输出文本。我换成露西达字体,我一直得到这个: alt text http://img826.imageshack.us/img826/7312/foreignlangwindowsconso.png

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


Tags: 答案in程序most错误字体utfencode
3条回答

这对我有效:

# coding=utf-8
print "Español\nPortuguês\nItaliano"

您可能还想尝试使用chcp 65001 && your_program.py运行它,尝试将命令提示符字体更改为Lucida Console。

简短回答:

# -*- coding: utf-8 -*-
print u"Español\nPortuguês\nItaliano".encode('utf-8')

第一行告诉Python您的文件是用UTF-8编码的(您的编辑器必须使用相同的设置),这一行应该始终位于文件的开头。

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

首先,在Python 2.x中,不能encode使用非ASCII字符的str。你得写信

print u"Español\nPortuguês\nItaliano".encode('utf-8')

在Windows控制台上使用UTF-8很困难。

  • 您必须将命令提示符字体设置为Unicode字体(默认情况下唯一可用的字体是Lucida控制台),否则无论如何都会得到IBM437编码。
  • chcp 65001
  • 修改encodings._aliases以将“cp65001”视为UTF-8的别名。

即使这样,它似乎也不起作用。

相关问题 更多 >