본문 바로가기
Python/Python FAQ

Python 유니코드 문자열에서 강세를 제거하는 가장 좋은 방법은 무엇인가요?, What is the best way to remove accents (normalize) in a Python unicode string?

by 베타코드 2023. 7. 10.
반응형

질문


나는 Python에서 유니코드 문자열을 가지고 있으며, 모든 악센트 (발음 기호)를 제거하고 싶습니다.

웹에서이를 수행하는 우아한 방법을 찾았습니다 (Java에서):

  1. 유니코드 문자열을 긴 정규화 된 형식으로 변환하십시오 (글자와 발음 기호를 별도의 문자로 분리)
  2. 유니코드 유형이 "발음 기호"인 모든 문자를 제거하십시오.

pyICU와 같은 라이브러리를 설치해야합니까? 아니면 Python 표준 라이브러리로도 가능한가요? 그리고 Python 3은 어떻게 되나요?

중요한 참고 사항: 악센트가있는 문자를 그들의 악센트가없는 대응물로 명시 적 매핑이없는 코드를 피하고 싶습니다.


답변


Unidecode는 이에 대한 올바른 답입니다. 이는 어떤 유니코드 문자열도 ASCII 텍스트로 가능한 한 가장 가까운 표현으로 변환합니다.

예시:

>>> from unidecode import unidecode
>>> unidecode('kožušček')
'kozuscek'
>>> unidecode('北亰')
'Bei Jing '
>>> unidecode('François')
'Francois'
반응형

댓글