Python

파이썬 한글 깨짐 ( + 한글 자음 모음 분리 현상 )

도돔 2023. 4. 27. 03:09

파이썬과 matplotlib를 이용하여 데이터 시각화를 하다가 예상 못한 에러를 발견했다!!

 

1. 시각화 과정에서 한글 깨짐 ① ; 한글이 전부 네모로 표시

시작 전 다음 코드를 추가해서 폰트를 제대로 설치한 후 다시 실행하면서 해결할 수 있다.

!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf
FONT_PATH = '/usr/share/fonts/truetype/nanum/NanumGothic.ttf'
font_name = fm.FontProperties(fname=FONT_PATH, size=10).get_name()
print(font_name)
plt.rcParams['font.family']=font_name
assert plt.rcParams['font.family'] == [font_name], "한글 폰트가 설정되지 않았습니다."

 


2. 시각화 과정에서 한글 깨짐 ② ; 한글 자모음이 모두 분리

한글로 구성된 라벨이 전부 분리되어서 ㅇㅣㄹㅓㄴㅅㅣㄱㅇㅡㄹㅗ 출력되었다... ㅇ0ㅇ

 

이건 진짜 처음 보는 현상이라 구글링해보니 unicodedata의 normalize를 사용하여 정규화를 다시 진행해 주면 해결된다고 한다.

 

unicodedata — Unicode Database

This module provides access to the Unicode Character Database (UCD) which defines character properties for all Unicode characters. The data contained in this database is compiled from the UCD versi...

docs.python.org

 

import unicodedata

example = '에러가 났어요'
uni_example = unicodedata.normalize('NFC',example)

 

 

이런 식으로 원하는 문자열에 unicodedata.normalize를 적용하면 깨짐 현상을 해결할 수 있다!

 

문제 해결! 한글 라벨이 정상적으로 출력된다 :)

728x90
반응형