티스토리 뷰

개발 TIP

PHP 한글이 한자로 나올 때

개발쟝 2018. 5. 21. 16:09

한글이 한자로 나올 때가 있다.

인코딩이 깨진거면 이상한 특수문자나 이상한 한글로 표시되는데 한문??


페이지의 charset 은 euc-kr 이고 페이지에서 호출하는 php의 charset 도 euc-kr 인데 왜 깨지는지 몰랐다.

한가지 찝찝한 건 이 페이지는 부모페이지가 있어서 iframe 으로 호출되는 페이진데,

iframe 의 인코딩은 utf-8 이고, 이 iframe 의 상위 부모페이지 또한 utf-8 이라는 것


이유가 무엇이간에 한글이 제대로 안 나오면 보통 iconv 를 이용하는데,  => iconv("CP949", "UTF-8", $msg);

이것도 안 먹히는 페이지가 있다.

최후의 방법은 php 에 헤더 추가하기


header("Content-Type:text/html;charset=euc-kr");


php 가 호출되는 html 파일의 인코딩에 따라 euc-kr 혹은 utf-8 을 써준다.


나의 상황은 php 자체에서 alert 띄워서 한글표시하면 잘 나왔고,

$msg 에 값 담아서 html 에서 alert 으로 띄우려고 하면 한자로 표시되는 것이었다.

html 에서 값을 받아 사용하는 경우 웬만하면 header 소스 한줄 추가하는게 안전한걸로!

댓글