Loading

블로그채널

Search !

[PHP] 강좌 #21 GET POST 한글 깨짐 UTF-8 문제 해결


한글 깨짐 현상

한글을 사용하면 아래와 같이 한글 깨짐 문제가 나타납니다.

Welcome Neo
Your email address is: Hello@world.com
Your message is: �쒓�源⑥쭊�꾩긽 


한글을 사용하면 아래와 같이 한글 깨짐 현상이 나타납니다. 이 문제를 해결하기 위해서는 문자셋을 UTF-8로 설정하거나 PHP header() 함수로 문자셋을 UTF-8로 설정하면 해결됩니다.

 

[PHP] 강좌 #21 GET POST 한글 깨짐 UTF-8 문제 해결

[PHP] 강좌 #21 GET POST 한글 깨짐 UTF-8 문제 해결

 

해결방법 #1
<head>안에 utf-8로 세팅합니다.

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

 

해결방법 #2

<?php header("Content-Type:text/html;charset=utf-8"); ?>

 


header() 함수에 대해 잠시 살펴보겠습니다.

 

header() 함수는 클라언트에게 raw HTTP 헤더를 보냅니다. 출력값을 보니기 전에 header() 함수가 선행되어 호출되는 것이 좋습니다.

 

header() 함수가 감이 오나요? 예제를 보면 매우 재미있습니다. 위 코드가 실행되면 리다이렉트되어 해당 주소로 이동합니다. 

 

리다이렉트
<?php
header("Location: http://www.naver.com/"); /* 리다이렉트 */

/* 리다이렉트 되었을 때 아래의 코드가 실행되지 않아야한다면 exit로 탈출 */
exit;
?>  

 

header() 함수를 사용하면 문서 다운 가능하게 만들어줍니다. 여러분의 서버에는 "original.pdf" 파일이 존재합니다. 그 파일 내용을 읽고 downloaded.pdf 파일로 만들어 줍니다.

 

PDF 문서 다운
<?php
// PDF 타입으로 설정
header('Content-Type: application/pdf');

// 새로 다운 받을 파일을 downloaded.pdf로 설정
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// PDF 원본 파일 original.pdf
readfile('original.pdf');
?>

 

[PHP] 강좌 #21 GET POST 한글 깨짐 UTF-8 문제 해결

 

위 그림과 같이 PDF 문서 다운 코드를 넣었습니다.  그리고 전송 버튼을 누루자 downloaded.pdf라는 파일이 만들어졌습니다.

[PHP] 강좌 #21 GET POST 한글 깨짐 UTF-8 문제 해결

 

GET 메소드와 POST 메소드를 사용할 때 한글 깨짐 문제가 생기는데요, header() 함수를 사용해서 UTF-8 문자셋 설정하여 해결하였습니다. header() 함수는 이외에도 리다이렉션과 PDF 등을 다운할 수 있는 재미있는 기능이 있었습니다.

 

[Copyright ⓒ 블로그채널 blogCHANNEL 무단전재 및 재배포 금지]