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

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

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

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

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

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

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

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

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

카테고리

17년차 풀스택 웹 개발자 Mytory입니다

웹 개발에서도 중요한 것은 개념입니다.
이 블로그에는 제가 개발하며 익힌 개념들을 정리합니다.

워드프레스를 오래 다뤄 왔고 강의도 두 편 찍었습니다.
– 인프런 “워드프레스 제대로 개발하기 어드민 편, 클라이언트 편
– 클래스101 “누구나 할 수 있는 워드프레스 홈페이지 만들기 – 기획부터 출시까지 한 방에 OK

유튜브 채널에 워드프레스 관련 팁들을 올리고 있습니다.

👉 소개 더 보기

대표글

댓글 남기기