2017-12-04 2 views
0

에 인코딩을 변환? 당신이 원하는 일을해야처럼내가 '라 코루냐'이 점을 변환 할 수있는 방법</p> <pre><code>a='A Coruña' </code></pre> <p>와 같은 도시 이름 문자열이 단지 알파벳 표현

최저

+1

Unidecode 패키지로 원하는 것을 할 수 있습니다. https://pypi.python.org/pypi/Unidecode/ – bouteillebleu

+0

왜 이렇게하고 싶은지 궁금합니다. 고대 ASCII 전용 시스템으로 작업하고 있습니까? 전체 유니 코드를 사용할 수 없더라도 간단한 악센트 문자를 처리 할 수있는 [Latin1] (https://en.wikipedia.org/wiki/ISO/IEC_8859-1)과 같은 인코딩을 사용할 수 있습니다. –

+0

나는 'A Coruña'와 'A Coruna'가있는 도시 이름이 두 개인 표가 있습니다. – user4279562

답변

2

The Unidecode module 보인다. ,

>>> from unidecode import unidecode 
>>> a='A Coruña' 
>>> unidecode(a) 
'A Coruna' 

파이썬이 파이썬 2와

: 그것은 아주 간단 파이썬 3에서

pip install Unidecode 

파이썬 3

:

가 함께 설치 이미 문자열로있어 경우 .decode()를 사용하여 유니 코드 문자열로 변환해야합니다,

a = u'A Coruña' 

또는 : 당신은 처음부터 유니 코드 문자열로 문자열을 정의 중 하나를해야합니다 :

a = 'A Coruña'.decode('utf-8') 

그리고 당신은 파이썬 3.x를위한 파이썬 3

+0

UnicodeDecodeError : 'ascii'코덱은 위치 6에서 바이트 0xc3을 디코딩 할 수 없습니다. 서수는 범위 (128)가 아닙니다. 혹시 그 이유를 아시겠습니까? Python 2.7 – user4279562

+0

파이썬 2.7에서 테스트 할 때 동일한 오류가 발생했습니다. 먼저 문자열이 유니 코드 문자열로 정의되어 있는지 확인해야합니다. 답변을 수정할 것입니다. – bouteillebleu

+1

아, 고마워요! – user4279562

1

의 예에서와 같이 unidecode(a)을 실행할 수 있습니다

>>>import unicodedata 
>>>a = 'A Coruña' 
>>>search_string = ''.join((c for c in unicodedata.normalize('NFD', a)if unicodedata.category(c) != 'Mn')) 
>>>print(search_string) 
>>>A Coruna 
관련 문제