잡담소장소

어제 삽질한 CP949와 EUC-KR 본문

Study ;3

어제 삽질한 CP949와 EUC-KR

알 수 없는 사용자 2012. 2. 16. 17:13

메일을 읽다가 월요일에 놓쳤던 메일이 있다는 걸 발견하고 읽어보니
서포트 페이지에서 대화명 변경 시 묭묭이라고 입력하면 서포트에는 보이나 DB에는
뱪뱪이 (대충적음) 로 들어가는 바람에 게임클라이언트에서 이상하게 나온다는 내용.

아 이거 해결한다고 한 30분 혼자 삽질하다가 도저히 안되겠어서 헬프요청.
별별 방법을 다 써봤으나 모두 수포..
겨우 하나 만들었던 일일히 바꿔주는 함수는 기밀태씨가 보내준 코드 한줄로 단박에 해결!!
나랑 울팀분들이 몇시간 낑낑댄거 한 30분만에 풀어줌..ㅠㅠ  

$nick = iconv("UTF-8", "CP949", html_entity_decode(iconv("CP949", "UTF-8", $_POST[nick]), -1, "UTF-8"));

iconv함수로 들어가있는 cp949형식을 utf-8코드로 바꿔주고 
html_entity_decode로 전체문자열을(condition -1) UTF-8로 바꿔준 후에
다시 iconv로 UTF-8을 CP949로 바꿔주면 DB에 제대로 들어간다.

프로그래머 생활에서 정말 도움이 되는 울 기밀태씽 ㅠㅠ 고마웡~

어찌되었건 여기서 중요한건
EUC-KR의 한글셋은 별로 없다는거. 
다들 EUC-KR을 쓰고있다고 하지만 실제 사용하는건 CP949.


비슷하게 다른부분에서 에러가 발생.
거기는 page submit이 아닌 jQuery의 .get 함수로 넘긴다.
jQuery에서는 데이터를 무조건 UTF-8로 넘기기 때문에 decode만 잘하면 된다.
하지만 넘어온 데이터를 EUC-KR로 decode했던 것이 에러.
CP949로 바꿔주니 잘 나온다.


하아. 하나 배웠다... 
반응형

'Study ;3' 카테고리의 다른 글

javascript의 이런 저런  (0) 2012.04.17
IE 7에서의 jQuery  (0) 2012.02.24
jQuery 유용한 팁(이라고 생각하는데...) in PHP  (0) 2011.09.21
date 함수 in PHP  (2) 2011.08.09
IE, Fire Fox와 Chrome  (0) 2010.12.02
Comments