我试图在交互模式下将一些西班牙语字符键入字符串。例如,option+e e
生成'é',以便我发表string="él"
之类的声明。这适用于终端,但在python(我安装的任何版本,我有几个)它没有。它什么都不产生。这包括尝试粘贴字符。这正是this question中描述的问题,特别是关于粘贴的部分以及他对Alex的问题的评论,他指出Alex的答案没有解决关于utf-的复制/粘贴失败的问题。 8个字符。我怎么能这样做?
答案 0 :(得分:3)
Python用于读取交互式输入的readline
库不接受终端发送的非ASCII字符。这意味着终端仿真器不提供UTF-8编码的字符,或者readline未配置为接受UTF-8输入。
幸运的是,readline被许多流行程序使用,包括bash
shell,所以有很多信息可以让它工作。例如,from this article:
如何让UTF-8输入正常工作?
- 在终端 督察:
- 在“仿真”部分中,禁用“转义非ASCII” 字符选项。
- 在“显示”部分中,选择“Unicode(UTF-8)” 字符集编码。
将以下行添加到
.profile:
export LC_CTYPE=en_US.UTF-8
将以下行添加到
.inputrc
:set meta-flag on set input-meta on set output-meta on set convert-meta off
通过执行
source ~/.profile
和source ~/.inputrc
来应用更改。
答案 1 :(得分:0)
在字符串文字之前使用u
,使其成为unicode字符串。
string = u"El avión cayó del cielo"
如果这不起作用,问题在于您的编辑器或终端,在这种情况下请尝试添加
#coding: utf8
在你的python程序的前两行中的任何一行中使用一个带有unicode支持的正确编辑器。