2012-11-25 6 views
3

일본어 가타카나를 로마자 ("sh"에서 "shi")로 변환하는 스크립트를 만들려고합니다. 여기에 내가 시도하고있는 작업은 다음과 같습니다Python이 유니 코드를 인식하지 못합니다.

x = u'' 
x = raw_input('Enter katakana: ') 
x = x.replace(u'\u30B7', u'shi') 

Enter Katakana: シ
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)

을만큼 난 내 스크립트에서 유니 코드 U '\ u30B7'로 작성 및 シ하지 않은, 바로, 그것을 처리 할 수 ​​있어야한다?

답변

8

raw_input은 입력 된 문자열을 사용되는 터미널에 따라 달라지는 바이트 인코딩 형식으로 반환합니다. 먼저 유니 코드로 명시 적으로 입력을 디코딩 시도 : 당신이 얻을

import sys 
x = raw_input('Enter katakana: ').decode(sys.stdin.encoding) 

오류가 순진 바이트 인코딩 기본 통해 유니 코드로 xascii 코덱을 변환하려고 교체에서입니다.

관련 문제