340
2015-04-27 03:09:24
1
한글자소에 대해 알기 쉽게 써 주셨네요. 감사합니다. 초중종성 분리는 한국어 작업 하면서 많이 필요한 부분이겠죠? 제가 경험한 것 중 하나는 맥에서 윈도우, 리눅스로 파일 옮길 때 파일 이름이 깨지는 걸 고칠 때였습니다.
맥 -> 리눅스로 한글이 자소별로 분리되는 문제는 대개 UTF-8 인 코드페이지 상태가 변경되지 않은 상태에서 단지 NFD, NFC 정보만 바꿔 주면 되는 걸로 보입니다. 하지만 맥 -> 윈도우에서는 한글이 이미 CP949로 인코딩이 변경된 상황이기 때문에 자소를 보고 다시 모아 쓴 형태를 유추해야만 하죠. 이 때 초-중-종성을 알아내면 원래의 코드를 찾아내야 하는데, 이 때 저 방법이 꼭 필요합니다.
예전에 대강대강 작성했지만 파이썬에서 윈도우 파일의 한글자모깨짐을 복구하는 코드를 짜 봤었어요. https://gist.github.com/chwnam/ce66526b64e645b8c406 참고되면 좋겠습니다. build_string_from_indices 함수 부분에서 본문에 언급된 알고리즘이 나와 있어요.