在OS-X上以交互模式在python中键入utf-8字符

时间:2012-04-09 18:07:28

标签: python macos unicode

我试图在交互模式下将一些西班牙语字符键入字符串。例如,option+e e生成'é',以便我发表string="él"之类的声明。这适用于终端,但在python(我安装的任何版本,我有几个)它没有。它什么都不产生。这包括尝试粘贴字符。这正是this question中描述的问题,特别是关于粘贴的部分以及他对Alex的问题的评论,他指出Alex的答案没有解决关于utf-的复制/粘贴失败的问题。 8个字符。我怎么能这样做?

2 个答案:

答案 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 ~/.profilesource ~/.inputrc来应用更改。

  •   

答案 1 :(得分:0)

在字符串文字之前使用u,使其成为unicode字符串。

string = u"El avión cayó del cielo"

如果这不起作用,问题在于您的编辑器或终端,在这种情况下请尝试添加

#coding: utf8

在你的python程序的前两行中的任何一行中使用一个带有unicode支持的正确编辑器。

相关问题