Knowledge Map
파일 인코딩 변환시의 주의사항 본문
어제 다시 DB를 latin1으로 변환한 다음에 UTF-8로 되어 있는 모든 HTML 에
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 추가
많은 수의 php 파일에는
header('Content-Type: text/html; charset=UTF-8'); 추가
하고는 실행을 시켜보았는데 제대로 되지를 않았다.
그래서 latin1이라서 euckr이 아닌 다른 것을 처리하는건가 싶어서 iconv에다가
ISO 들과 CP 들을 열 몇개를 바꿔가면서 붙여보았는데 마찬가지로 안되었다.
혹시나 DB에 한글이 깨져서 들어간 것은 아닐까 싶어서 다시 mysqldump를 시도해서 DB 및 mysql를 전부다 삭제하고 다시 설치 및 셋팅도 해보았었다.
물론 그 와중에 mysql 4.2 이상에서는 기본 서버셋팅이 UTF-8로 되어있기 때문에 EUC-KR, Latin1으로 덤프를 뜨고싶다면
mysqldump -u root -p dbname --default-character-set latin1 > dump.sql
이런식으로 default-character-set을 붙여줘야 한다는 것을 알게 되기는 했다만 여하튼 이것도 문제가 아니었다.
그렇다면 무엇이 문제였을까?
바로 PHP파일 인코딩의 문제였다.
EUC-kr로 인코딩 되어 있는 php파일을 UTF-8로 셋팅되어 있는 에디터로 열어 보면 한글이 깨져서 보인다.
그런데 이러한 상황에서 그대로 저장하게 되면 파일은 내부 내용이 깨진 상태로 UTF-8로 저장된다.
이것에 대해서 한글만 깨지고 영어는 안 깨져서 별 문제 없겠지 라고 생각을 했었는데 실은 그게 아니었던 모양이다.
이 문제를 못찾아서 정말 얼마나 많이 헤맷는지 모르겠다.
문제가 파악되자 해당 파일의 백업 파일을 note++ 내에 내장된 인코딩 변환 기능을 사용해서 안전하게 변환시킨 다음 저장하고 실행을 시켰더니 제대로 실행되었다.
파일의 인코딩을 변환시켜야 할때에는 반드시 주의를 기울이고 대충 변환하지 말자.
'WEB' 카테고리의 다른 글
Visual Studio Code FTP 플러그인 (0) | 2016.07.27 |
---|---|
일부모바일 a태그 문제 (0) | 2016.07.11 |
ie8 에서의 중앙 정렬 (0) | 2016.06.30 |
RESTful (0) | 2016.06.20 |
브라우저 감지 (0) | 2016.04.19 |