2026, 새로운 도약을 시작합니다.

완벽한 UTF8 지원하기

가끔 개발과정에 디비에 저장한 텍스트가 페이지에서는 깨진 글처럼 보일 때가 있다.

이것은 UTF8을 제대로 구현하지 못한것을 의미한다.

이번 글에서는 PHP, HTML 쪽에서 이문제를 어떻게 해결 하는지 샘플코드로 설명하려고 한다.

1. 입력값에 대한 UTF8설정

PHP에서 클라이언트쪽에서 요청보내어진 문자열을 정확히 UTF8처리하려면

[code]

$string = $_REQUEST['user_comment'];
if (!mb_check_encoding($string, 'UTF-8')) {
// 문자열이 UTF8인코딩이 아니면 UTF8로 인코딩한다.
$actualEncoding = mb_detect_encoding($string);
$string = mb_convert_encoding($string, 'UTF-8', $actualEncoding);

// $string 을 디비에 저장 또는 그어떤 로직 실행....
}
[/code]

만일 웹페이지에서 form태그로 서버에 값을 넘긴다면

[code]

<form action="somepage.php" accept-charset="UTF-8">
[/code]

이렇게 해주는것이 좋다.

2. 출력값에 대한 UTF8

PHP에서 직접 UTF8인코딩 헤더를 작성해줄수 있다.

[code]

header('Content-Type: text/html; charset=utf-8');
[/code]

만일 출력을 HTML페이지로 한다면

[code]

HTML5

<meta charset="utf-8">
낮은 버전에서는 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

[/code]

3. 디비에서 UTF8

디비의 charset, collation을 utf8mb4(MySQL < 5.5.3 은 utf8) 로 설정해주어야 한다.

|

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.
번호 분류 제목 글쓴이 날짜 조회
5402 MySQL 6일 전 조회 22
5401 JavaScript 3주 전 조회 117
5400 MySQL 1개월 전 조회 224
5399 PHP 2개월 전 조회 470
5398 PHP 2개월 전 조회 354
5397 PHP 2개월 전 조회 286
5396 기타 5개월 전 조회 560
5395 PHP 6개월 전 조회 1,196
5394 MySQL 7개월 전 조회 794
5393 웹서버 9개월 전 조회 986
5392 1년 전 조회 1,311
5391 11개월 전 조회 1,320
5390 11개월 전 조회 1,114
5389 10개월 전 조회 1,032
5388 10개월 전 조회 1,171
5387 9개월 전 조회 963
5386 JavaScript 9개월 전 조회 1,150
5385 웹서버 9개월 전 조회 1,170
5384 JavaScript 10개월 전 조회 991
5383 기타 11개월 전 조회 1,417
5382 기타 11개월 전 조회 661
5381 JavaScript 11개월 전 조회 1,077
5380 기타 11개월 전 조회 834
5379 JavaScript 11개월 전 조회 832
5378 1년 전 조회 1,399
5377 기타 1년 전 조회 941
5376 jQuery 1년 전 조회 640
5375 jQuery 1년 전 조회 872
5374 기타 1년 전 조회 950
5373 MySQL 1년 전 조회 982
🐛 버그신고