[파이썬] 문자열의 유니코드 문자 분해와 결합

파이썬에서는 문자열을 다룰 때 유니코드 문자를 분해하거나 결합하는 기능을 제공합니다. 이 기능을 사용하면 문자열을 세밀하게 조작하고 특정한 작업을 수행할 수 있습니다.

문자열의 유니코드 문자 분해하기

문자열의 유니코드 문자를 분해하는 방법으로 파이썬의 unicodedata 모듈을 사용할 수 있습니다. unicodedata 모듈은 유니코드 문자의 속성을 제공하며, normalize 함수를 사용하여 문자열에서 유니코드 문자를 분해할 수 있습니다.

다음은 문자열을 유니코드 문자로 분해하는 간단한 예제 코드입니다.

import unicodedata

string = "안녕하세요"
characters = unicodedata.normalize('NFD', string)

for char in characters:
    print(char)

실행 결과:

ᄋ
ᅡ
ᆫ
ᄂ
ᅧ
ᆼ
ᄒ
ᅡ
ᄉ
ᅦ
ᄋ
ᅭ

위의 코드에서 unicodedata.normalize 함수의 첫 번째 인자인 'NFD'는 분해 형태로 분해할 것임을 나타내는 값입니다. 이렇게 분해된 문자열은 각각의 유니코드 문자로 분리됩니다.

문자열의 유니코드 문자 결합하기

유니코드 문자로 이루어진 문자열을 결합하여 하나의 문자열로 만들 수도 있습니다. 이때 파이썬의 unicodedata 모듈을 사용하며, normalize 함수의 두 번째 인자로 'NFC'를 넣어 결합 형태로 문자를 결합할 수 있습니다.

다음은 유니코드 문자를 결합하여 문자열을 생성하는 예제 코드입니다.

import unicodedata

characters = ['ᄋ', 'ᅡ', 'ᆫ', 'ᄂ', 'ᅧ', 'ᆼ', 'ᄒ', 'ᅡ', 'ᄉ', 'ᅦ', 'ᄋ', 'ᅭ']
string = unicodedata.normalize('NFC', ''.join(characters))

print(string)

실행 결과:

안녕하세요

위의 코드에서 unicodedata.normalize 함수의 두 번째 인자인 'NFC'는 결합 형태로 문자를 결합할 것임을 나타내는 값입니다. 이렇게 결합된 문자열은 하나의 완전한 문자열로 이루어집니다.

결론

파이썬은 unicodedata 모듈을 통해 문자열의 유니코드 문자를 분해하고 결합하는 기능을 제공합니다. 이를 통해 문자열을 다룰 때 세밀한 조작이 가능하며, 다양한 작업을 수행할 수 있습니다. 이러한 기능은 다국어 지원이 필요한 프로젝트에서 특히 유용하게 사용될 수 있습니다.