본문 바로가기
Com.IT.Elec

[PHP] ANSI ↔ utf-8 변환, 인코딩 한글깨짐 해결방법

by sraa 2012. 1. 22.
http://blog.naver.com/PostView.nhn?blogId=jangstargosu&logNo=140135038968&redirect=Dlog&widgetTypeCall=true

[PHP] ANSI ↔ utf-8 변환, 인코딩 한글깨짐 해결방법

 

안녕하세요~ 오늘 있었던 문제를 해결하면서 그 솔루션을 한번 포스팅해볼까 합니다.

홈페이지 개발하면서 제일 식겁하는일이 뭘까요..?

제가 생각하기엔 모든걸 다 만들었는데 최종적으로 말짱도루묵이 되었을때가 아닌가 하네요 ㅋㅋ

예를들면 테스트서버에서 모든 페이지를 만든후에 본서버로 이전했을때

뭔가 맞지않아서 골치아픈 경우가 있겠죠~

 

그 대표적인 경우가 바로 언어 문제라고 할 수 있습니다.

저도 타겟서버에 환경을 잘 몰라서 일단 EUC-KR로 작업했는데

타겟서버에 올려보니 UTF-8이더군요... 물론 한글은 다 깨집디다~

 

아래 표를 살펴보죠~

 서버

 PHP,HTML 문서

 한글깨짐유무

EUC-KR

UTF-8 

 UTF-8

EUC-KR 

 EUC-KR

EUC-KR 

무 

 UTF-8

UTF-8 

무 

 

내용은 아주 간단합니다. 홈페이지를 구성하는 파일과 서버의 언어셋이 일치해야

한글이 깨지지 않습니다~

 

즉 EUC-KR로 인코딩되어져있는 PHP파일을 UTF-8언어셋을 사용하는 서버에 올리면

한글이 와장창 특수문자로 전환되어 출력되는거지요~

 

그럼 왜 번거롭게 2가지로 나누어서 사용할까요?

뭐 그냥 쉽게 설명드리면 EUC-KR은 한글사용에 가장 적합한 형태구요

다만 외국서버에서 접근시 한글이 안나올수도 있습니다.

 

UTF-8로 해야 외국에서 한글이 보여진다고 하드라구요~

암튼 그런 이유로 저는 ANSI 파일을 UTF-8로 변환을 해야했답니다.

변환 방법은 아주 쉽습니다. 바로 우리의 친구 메모장으로도 가능 합니다.

 

 

저장할때 "다른이름으로 저장" 하셔서 인코딩 부분을 원하시는걸로 하면 된답니다 쉽죠? ㅋㅋ

저는 UTF-8로 인코딩 하였을떄 한글 문제가 해결이 되었습니다~

 

그리고 파일내용중 일부만 변환하고싶으시다면 아주 갱장한 PHP코드가 있습니다.

 

 <? echo iconv("EUC-KR", "UTF-8", "변환할내용"); ?>



간략히 쓰시려면 이정도로 쓰시면 되겠네요 ㅎㅎ

전체 페이지중 일부만 살짝살짝 바꿀 필요가 있을때 위와 같이 하시면 된답니다.

저도 서버가 불안정해서 일부 한글깨짐이 있어서

죠롷게 해결했답니다 ㅎㅎ