2012-04-09 2 views
5

대화식 모드에서 일부 스페인어 문자를 문자열에 입력하려고합니다. 예를 들어 option+e e을 사용하면 'é'을 생성하므로 string="él"과 같은 문구를 만들 수 있습니다. 이 터미널에서 작동하지만 파이썬 (모든 버전 중 내가 설치 한, 그 중 몇 가지가 있음) 않습니다. 단순히 아무것도 생성하지 않습니다. 여기에는 문자를 붙여 넣으려는 작업이 포함됩니다. 그것은 정확하게 this question에 설명 된 문제, 특히 붙여 넣기에 관한 부분과 Alex의 질문에 대한 그의 코멘트에서 Alex의 대답은 utf-8 문자와 관련하여 복사/붙여 넣기가 실패한 문제를 해결하지 못한다고 지적합니다. 어떻게해야합니까?OS-X의 대화 형 모드에서 Python으로 utf-8 문자 입력

+0

"파이썬 인터프리터"란 정확히 무엇을 의미합니까? 터미널을 통해 * 파이썬 셸에 액세스합니다. 어떻게합니까? –

+0

나는 대화식 모드를 의미한다고 생각합니다. 질문을 변경했습니다. –

+0

그건 내 질문에 대답하지 않습니다. 대화 형 모드라고 부르는이 물건에 어떻게 다가 가고 있습니까? –

답변

0

문자열 리터럴 앞에 u을 사용하면 유니 코드 문자열이됩니다.

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

그래도 문제가 작동하지 않는 경우가이 경우에 파이썬 프로그램의 첫 번째 두 라인의에서

#coding: utf8 

을 추가 시도하고 유니 코드와 적절한 편집기를 사용하여 편집기 나 터미널에있다 지원하다.

+0

첫 번째 제안이 작동하지 않습니다. 나는 해당 문자를 해석기에 전혀 입력 할 수 없습니다.두 번째 제안에서 무슨 뜻인지 모르겠습니다. OS-X와 함께 제공되는 터미널 앱을 사용하고 있으며 쉘에서 문자를 입력 할 수 있지만 대화식 모드에서는 Python으로 입력 할 수 없습니다. 나는 이미 기본 인코딩을 'sitecustomize.py'에서'utf-8 '로 변경했습니다. –

+1

기본 인코딩 시스템을 변경하면 일부 라이브러리가 손상 될 수 있으므로 권장하지 않습니다. – KurzedMetal

+0

** 기본 인코딩을 변경하지 마십시오 **. 'import sys;는 무엇입니까? print (sys.stdout.encoding)'라고 말합니까? –

3

파이썬이 대화 형 입력을 읽는 데 사용하는 readline 라이브러리는 터미널에서 보낸 비 ASCII 문자를 허용하지 않습니다. 이것은 터미널 에뮬레이터가 UTF-8 인코딩의 문자를 제공하지 않거나 readline이 UTF-8 입력을 허용하도록 구성되지 않았 음을 의미합니다.

다행히도 readline은 bash 쉘을 비롯한 많은 인기있는 프로그램에서 사용되므로 충분히 작동하는 방법에 대한 정보가 충분합니다. 예를 들어, from this article :

어떻게 UTF-8 입력이 제대로 작동하려면 어떻게해야합니까? 터미널 Inspector에서

  • : 에뮬레이션 섹션에서
    • , 도피 비 ASCII 문자 옵션을 끄십시오.
    • 표시 섹션에서 유니 코드 (UTF-8)를 문자 집합 인코딩으로 선택하십시오.
  • .inputrc에 다음 줄을 추가하여 .profile:

    export LC_CTYPE=en_US.UTF-8 
    
  • 에 다음 줄을 추가합니다 :

    set meta-flag on 
    set input-meta on 
    set output-meta on 
    set convert-meta off 
    
  • source ~/.profilesource ~/.inputrc를 수행하여 변경 사항을 적용합니다.

+0

또한이 문제는 불행히도 해결되지 않습니다. – Rmatt