로그인

이메일
비밀번호
왼쪽에 걸리적 거리는 거 숨기기
UTF-8 캐릭터셋의 '한글' 이라는 글자를 URL 인코딩 하면
%ED%95%9C%EA%B8%80 이고,

EUC-KR 캐릭터셋의 '한글' 이라는 글자를 URL 인코딩 하면
%C7%D1%B1%DB 입니다.

그런데 자바스크립트에서는
전자(UTF-8)의 경우는 decodeURI 을 사용해서 디코딩이 가능하지만,

(Language : javascript)
  1. var str = '%ED%95%9C%EA%B8%80';
  2. console.log(decodeURI(str)); // 결과 : 한글

후자(EUC-KR)의 경우는 디코딩 할 방법이 없습니다;

(Language : javascript)
  1. var str = '%C7%D1%B1%DB';
  2. console.log(?????(str)); // 디코딩 할 방법이 없음

디코딩을 하기 위해서는 자바스크립트 내에서 EUC-KR 을 UTF-8 로 컨버팅 하는 작업을 수행해야 하는데요,

처음에는 EUC-KR 문자열을 그냥 몇번 더하기 곱하기 해주고 몇 번 쉬프트 하면 UTF-8 문자열로 컨버팅 할 수 있을 줄 알았는데, 이를 위해 컨버팅 방법을 찾아봤는데 딱히 방법이 없더군요;

결국 맵핑 테이블을 만드는 수밖에 없다는 결론에 이르러 맵핑 테이블을 사용한 디코딩 코드를 만들었습니다.

소스코드 첨부합니다. (맵핑 테이블 데이터 때문에 파일 사이즈가 꽤 되네요;)


사용은 아래와 같이 합니다.

(Language : javascript)
  1. var str = '%C7%D1%B1%DB';
  2. console.log(decodeURIforEUCKR(str)); // 결과 : 한글

파일 사이즈가 조금 작은 놈을 하나 더 만들어 봤습니다.
대신 초기화 속도가 좀 느립니다 (제 PC 에서 0.2~0.3초 정도)


제가 만든 코드이긴 하지만 가능한 클라이언트 사이드에서 EUC-KR -> UTF-8 컨버팅 할 작업을 만들지 않아 이 코드를 가능하면 안 쓰는 것이 좋지 않을까 생각합니다.
영양가 있는 포스팅인가요
(총 6분이 투표해서 4.0점) 4.0점
2009/02/01 20:35 2009/02/01 20:35

Trackback Address :: http://hooriza.com/trackback/1804

  1. EyesOnly 2009/02/02 10:28 댓글주소 | 수정 | 삭제 | 댓글

    우왕~

  2. 요와이 2009/02/02 10:55 댓글주소 | 수정 | 삭제 | 댓글

    결국...
    근성이 가이그녕..

  3. 헉군 2009/02/02 15:53 댓글주소 | 수정 | 삭제 | 댓글

    포토때문에 한거야?
    업로더가 아직 ms949라서 어쩔 수 없네..
    개선은 해야하지만.. ㅋㅋ

  4. 미역 2009/02/03 10:51 댓글주소 | 수정 | 삭제 | 댓글

    http://hooriza.com/1263
    http://hooriza.com/1227

    이런글이 그리워요

    • 후리자 2009/02/03 18:55 댓글주소 | 수정 | 삭제

      그런 글은 2009년 새롭게 변모한 후리자닷컴의 격조와 어울리지 않아.

[로그인][오픈아이디란?]


◀ PREV : [1] : ... [49] : [50] : [51] : [52] : [53] : [54] : [55] : [56] : [57] : ... [1330] : NEXT ▶