한글 깨짐 현상
한글을 사용하면 아래와 같이 한글 깨짐 문제가 나타납니다.
Your email address is: Hello@world.com
Your message is: �쒓�源⑥쭊�꾩긽
한글을 사용하면 아래와 같이 한글 깨짐 현상이 나타납니다. 이 문제를 해결하기 위해서는 문자셋을 UTF-8로 설정하거나 PHP header() 함수로 문자셋을 UTF-8로 설정하면 해결됩니다.
[PHP] 강좌 #21 GET POST 한글 깨짐 UTF-8 문제 해결
<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');
?>
위 그림과 같이 PDF 문서 다운 코드를 넣었습니다. 그리고 전송 버튼을 누루자 downloaded.pdf라는 파일이 만들어졌습니다.
GET 메소드와 POST 메소드를 사용할 때 한글 깨짐 문제가 생기는데요, header() 함수를 사용해서 UTF-8 문자셋 설정하여 해결하였습니다. header() 함수는 이외에도 리다이렉션과 PDF 등을 다운할 수 있는 재미있는 기능이 있었습니다.
[Copyright ⓒ 블로그채널 blogCHANNEL 무단전재 및 재배포 금지]
'컴퓨터 언어 > PHP' 카테고리의 다른 글
[PHP] 강좌 #20 GET POST 장점 단점 비교 및 차이점 (0) | 2015.06.30 |
---|---|
[PHP] 강좌 #19 GET POST 키 밸류 슈퍼 글로벌 변수 사용 (1) | 2015.06.30 |
[PHP] 강좌 #18 GET POST HTML Form 폼 개념 위젯 구성 (1) | 2015.06.30 |
[PHP] 강좌 #17 슈퍼 글로벌 변수 (0) | 2015.04.24 |
[PHP] 강좌 #16 배열 정렬 함수 Sorting Array (0) | 2015.04.23 |