더 나은 프로그래머가 되자

Mac OS에서 파일 업로드시 한글파일명 모음자음 분리 현상 본문

언어/PHP

Mac OS에서 파일 업로드시 한글파일명 모음자음 분리 현상

greathuman 2022. 3. 18. 15:16

Mac OS의 경우 한글파일명 처리를 NFD 방식으로 처리하기 때문에 해당 파일명을 윈도우나 리눅스 OS에서 보게되면

ㅎㅏㄴㄱㅡㄹ.jpg 와 같이 자음모음이 분리되는 현상을 보게된다.

fopen으로 다운로드 처리시 다운로드가 되지 않거나 파일명이 깨지는 상황이 생기게된다.

이를 해결하기 위해서 php 내장클래스인 Normalizer 클래스를 사용해서 NFD 방식을 윈도우 리눅스 방식으로 정규화하는 작업이 필요하다.

 

//Mac NFD 방식-> 윈도우,리눅스 방식으로 정규화
$fileName = '한글파일명.jpg';
if(class_exists('Normalizer')){
	if(Normalizer::isNormalized($fileName, Normalizer::FORM_D)){
		$fileName = Normalizer::normalize($fileName, Normalizer::FORM_C);
	}
}

$fileName = iconv("UTF-8","cp949//IGNORE",$fileName);

echo $fileName;

 

위와 같이 처리하면 한글파일명이 정상적으로 출력된다.

 

 

 

 

Comments