한글이름으로된 파일이 검색 안되는 현상 - 2

오이영·2022년 11월 10일
0

issue

목록 보기
2/2

지난 번에 말한 iOS나 mac에서 한글 이름으로 된 파일이 되지 않는 이슈를 어떻게 해결했는지 알아보았다.
먼저 텍스트 정규화 방식에 대해서 간단하게 정리하고 넘어가려고 한다.

텍스트 정규화 방식

유니코드는 전 세계의 문자를 일관되게 표현할 수 있도록 설계된 표준이다.
이런 유니코드 문자열을 정규화 해서 나타내는 방법이 총 4가지이다.

NFC, NFD, NFKD, NFKC

그 중 대표적인 두가지 NFC, NFD를 보자면

  • NFC(Normalization Form Composition)
    : 정준 분해 후 정준 조합한 형식이라고 나타나 있는데 쉽게 말하자면 '한'을 '한' 한 문자로 표현하는 형식이다.
  • NFD(Normalization Form DeComposition)
    : 정준 분해한 것으로 '한'을 'ㅎ' + 'ㅏ' + 'ㄴ'으로 세 문자로 표현하는 형식이다. 흔히 iOS, macOS에서 파일을 생성하거나 저장하면 이 NFD로 처리한다.

NFKC와 NFKD는 또 다른 NFC, NFD 정규화 방식이라고 한다.
자세한 것은 여기에서 보자.

Flutter에서 해결한 방법

아무튼 난 파일 이름 검색이 정상 작동되게 하기 위해서 파일 이름을 NFC 방식으로 변형한 후 검색하게 수정하였다.

unorm_dart 라이브러리를 사용하여 파일 이름을 정규화 시켜주었다. 지난 번에 채팅 구현할 때 iOS에서 파일 전송할 경우 파일 이름이 깨져서 나온다는 이슈가 있었을 대 이 라이브러리를 사용했었는데 이번에도 사용하게 되었다.

사실이 라이브러리 안까지는 파보지 못했다...
다음에 어떻게 정규화 시키는지도 한번 파보아야겠다.

참고

0개의 댓글