반응형
Web Development · PHP mb_convert_encoding
PHP mb_convert_encoding —
UTF-8 ↔ EUC-KR 인코딩 변환
한글 인코딩이 다른 시스템 사이에서 데이터를 주고받을 때
시작 오늘 분석할 코드
<?php $filename = "test.txt"; $contents = "가나다라마바사아자차"; $contents = mb_convert_encoding($contents, "EUC-KR", "UTF-8"); // UTF-8(현재 인코딩)을 EUC-KR로 변환 file_put_contents($filename, $contents); print "기록하였습니다."; ?>
한글 메시지를 UTF-8 → EUC-KR로 변환한 후 파일에 저장. 옛 시스템(Windows 메모장 ANSI 모드 등)과 호환을 위한 작업.
용어 용어 정리
mb_convert_encoding()문자열을 다른 인코딩으로 변환
매개변수 순서(원본, 대상, 원본 인코딩) 주의
UTF-8현대 표준 (한글 1자=3B)
EUC-KR옛 한국 표준 (한글 1자=2B)
CP949EUC-KR + 마이크로소프트 확장
반환값변환된 새 문자열
mb_detect_encoding()현재 인코딩 감지
실무CSV 다운로드, 옛 시스템 연동
1 매개변수 순서 — "대상이 원본보다 먼저"
mb_convert_encoding($string, "EUC-KR", "UTF-8"); // ↑ ↑ ↑ // 원본 문자열 목표 원본 // 인코딩 인코딩
※ 헷갈리기 쉬운 순서. "to" 인코딩이 "from"보다 먼저 온다.
2 주요 한글 인코딩
| 인코딩 | 한글 1자 크기 | 특징 |
|---|---|---|
UTF-8 |
3바이트 | 현대 웹 표준 — HTML/JSON/DB |
EUC-KR |
2바이트 | 옛 한국 표준 — 일부 옛 사이트 |
CP949 |
2바이트 | EUC-KR + 마이크로소프트 확장 (윈도우) |
UTF-16 |
2~4바이트 | 자바스크립트 내부 표현 |
3 활용 — Excel용 CSV 다운로드
// 한국 윈도우 Excel은 EUC-KR/CP949 CSV를 잘 연다 $csv = "이름,점수\n홍길동,90\n"; $csv = mb_convert_encoding($csv, "CP949", "UTF-8"); header("Content-Type: text/csv; charset=cp949"); header("Content-Disposition: attachment; filename=data.csv"); echo "\xEF\xBB\xBF"; // BOM (UTF-8 일부 환경 호환) echo $csv; exit;
반응형
4 자동 감지
$encoding = mb_detect_encoding($input, ["UTF-8", "EUC-KR", "CP949"]); $utf = mb_convert_encoding($input, "UTF-8", $encoding);
5 자주 하는 실수
· 매개변수 순서 잘못 → 글자가 깨져서 저장
· 변환 후 길이 변화 인지 못함 (UTF-8: 3B → EUC-KR: 2B)
· 자주 변환 시 성능 부담
· 변환 결과를 strlen으로 길이 비교 (인코딩에 따라 바이트 수 다름)
· 변환 후 길이 변화 인지 못함 (UTF-8: 3B → EUC-KR: 2B)
· 자주 변환 시 성능 부담
· 변환 결과를 strlen으로 길이 비교 (인코딩에 따라 바이트 수 다름)
핵심 한 줄 요약
mb_convert_encoding()문자열을 다른 인코딩으로 변환
순서(원본, TO 인코딩, FROM 인코딩)
UTF-8현대 표준 (한글 3B)
EUC-KR옛 표준 (한글 2B)
감지mb_detect_encoding
활용Excel CSV, 옛 시스템 연동
반환새 문자열 — 원본 보존
반응형
'php' 카테고리의 다른 글
| PHP form + view — 폼 입력 → POST → 화면 출력 완전 정리 (0) | 2026.06.17 |
|---|---|
| PHP preg_match — 정규식 패턴 검사 완전 정리 (0) | 2026.06.16 |
| PHP header Location — 페이지 리다이렉트 완전 정리 (0) | 2026.06.16 |
| PHP pathinfo — 파일 경로의 디렉토리·이름·확장자 추출 완전 정리 (0) | 2026.06.16 |
| PHP rmdir — 빈 폴더 삭제 완전 정리 (0) | 2026.06.16 |
왕진 블로그

댓글