Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- MySQL
- 페이지전환효과
- 글자 수 제한
- 정규식
- 우분투 npm 설치
- selinux
- 우분투
- virsualhost
- 구글뷰어
- 리사이즈
- 디지털 정부서비스ui/ux
- 보안인증서
- Vanilla JS
- iframe
- 정부 서비스 가이드라인
- 자바스크립트
- 배열
- 301 리다이렉트
- JS
- 날짜비교
- 비동기호출
- .htaccess
- SSL
- JavaScript
- Ajax
- post_type
- 날짜변환
- 글자수제한
- ip직접접근차단
- 애니메이트
Archives
- Today
- Total
더 나은 프로그래머가 되자
Mac OS에서 파일 업로드시 한글파일명 모음자음 분리 현상 본문
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;
위와 같이 처리하면 한글파일명이 정상적으로 출력된다.
'언어 > PHP' 카테고리의 다른 글
| 브라우저 언어 체크 및 리다이렉트 (0) | 2022.10.04 |
|---|---|
| PHPMailer에서 gmail api로 메일 발송하기(XOAUTH2 인증) (0) | 2022.06.09 |
| 웹쉘 탐지기 (0) | 2021.06.24 |
| 배열 안에 특정 데이터가 있는지 없는지 확인하기 in_array() (0) | 2021.01.13 |
| 쿼리스트링 배열에 담기 parse_str() (0) | 2021.01.12 |
Comments