[PHP] 파일 다운로드했을 때 윈도우에서 한글 파일명이 자소분리되는 현상 방지하기

맥에서 만든 한글 파일명으로 된 파일을 윈도우에 복사해서 보면 자소가 분리돼 보입니다. 아래와 같은 식이죠.

한글을 구성하는 방식 때문인데요. 윈도우는 NFC라는 방식을 사용하고, 맥은 NFD라는 방식을 사용합니다. NFC는 글자 단위로, NFD는 자소 단위로 저장을 하는 것이죠.

문제는 NFC로 저장된 한글은 맥에서도 잘 보이는데, 맥에서 NFD로 저장된 한글은 윈도우에서 제대로 보이지 않는다는 것인데요.

그래서 PHP에서 파일명을 저장하거나, 파일명을 내보낼 때 NFC로 변환 처리를 하는 것이 좋습니다.

다행히 PHP에는 간단한 방법이 마련돼 있습니다. 아래 코드를 사용하면 됩니다.

Normalizer::normalize($filename, Normalizer::NFC);

Normalizer는 PHP 5.3부터 있던 클래스로 유니코드 문자의 정규화를 지원합니다.

참고: 맥OS 한글 자소분리 현상 자동변환 프로그램 (NFD -> NFC)

👇 카테고리 글 목록

대표글

댓글 남기기