[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", "변환할내용"); ?> |
간략히 쓰시려면 이정도로 쓰시면 되겠네요 ㅎㅎ
전체 페이지중 일부만 살짝살짝 바꿀 필요가 있을때 위와 같이 하시면 된답니다.
저도 서버가 불안정해서 일부 한글깨짐이 있어서
죠롷게 해결했답니다 ㅎㅎ