2013-10-26 2 views
0

텍스트를 구문 분석하는 코드를 작성하고 변수 중 하나에서 텍스트 또는 정수를 사용할 수 있으므로 인쇄하려면 STR :언어 특정 문자열을 파이썬으로 문자열로 변환하는 방법 : str (ñ)

Variable=str(input) 

그것은 잘 작동하지만 입력 언어 특정 문자가 포함 된 경우 :

UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 9: ordinal not in range(128) 

어떻게이 문제를 방지하려면 : "N", 그것은 늘 작품을, 다음과 같은 오류를 던지고?

+0

언어와 관련이 없습니다. 그것은 * unicode *라고 불리며, ASCII 문자 세트 밖의 문자를 포함하는'unicode' 타입의 특정 값입니다. –

+0

자신에게 물어야 할 질문은 * ASCII 대신 사용할 인코딩 *입니다. 전환이 어떻게 작동하는지에 대한 자세한 내용은 http://docs.python.org/2/howto/unicode.html을 참조하십시오. –

+0

그래서 내 스크립트의 나머지 부분이 ASCII 호환 문자열로 작동한다면, 그리고 다른 인코더를 사용하여 해당 문자열을 번역하면 서로 호환되지 않을까요? –

답변

3

은 내가 먼저 유니 코드에 최대 읽기 시작하도록 촉구 :

네드 BATCHELDER에 의한 Python Unicode HOWTO

  • Pragmatic Unicode 너 계속 계속해.

    인코딩unicode() 값은 특정 인코딩을 사용해야합니다. str()은 기본 인코딩 ASCII를 사용하며 일부 값에 대해서는 실패합니다.

    명시 인코딩은 unicode.encode() 방법으로 수행 할 수 있습니다

    Variable = input.encode('utf8') 
    

    하지만 당신은 당신의 문제 도메인에 작동하는 인코딩을 선택해야합니다.

  • +1

    나는 또한 그 가치가 있다고 생각합니다. http://www.utf8everywhere.org/를 고려해보십시오. "Pragmatic Unicode"프리젠 테이션의 관점에서 "unicode sandwich"를 "utf-8 sandwich"로 대체합니다. 그렇다면 모든 최상의 경우에 외부 인코딩은 어쨌든 utf-8이므로 실제 빵은 없습니다. 파이썬은이 전략을 따르지 않았기 때문에 파이썬에서는 반드시 그 중 하나를 따르는 것이 가장 좋은 것은 아니지만 작동하는 다른 파이썬과 비교하여 파이썬의 실제 전략의 장단점을 알고 있어야합니다. –

    +0

    제안한 프로그래밍 방식의 유니 코드 링크는 매우 훌륭하고 모든 유니 코드 프로그램을 해결합니다. 감사. –

    +0

    @SteveJessop : 명시 적 코덱이 제공되지 않는 기본 코덱으로 Python 3이 UTF-8로 전환되었습니다. 파이썬 3.3은 또한 UCS2/UCS4 컴파일 타임 스위치에서 전환하고 필요에 따라 효율적으로 유니 코드 문자를 저장하는 값에 따라 Latin-1, UCS2 및 UCS4 사이를 동적으로 전환합니다. –

    관련 문제