UTF-8 캐릭터셋의 '한글' 이라는 글자를 URL 인코딩 하면
%ED%95%9C%EA%B8%80 이고,
EUC-KR 캐릭터셋의 '한글' 이라는 글자를 URL 인코딩 하면
%C7%D1%B1%DB 입니다.
그런데 자바스크립트에서는
전자(UTF-8)의 경우는 decodeURI 을 사용해서 디코딩이 가능하지만,
후자(EUC-KR)의 경우는 디코딩 할 방법이 없습니다;
디코딩을 하기 위해서는 자바스크립트 내에서 EUC-KR 을 UTF-8 로 컨버팅 하는 작업을 수행해야 하는데요,
처음에는 EUC-KR 문자열을 그냥 몇번 더하기 곱하기 해주고 몇 번 쉬프트 하면 UTF-8 문자열로 컨버팅 할 수 있을 줄 알았는데, 이를 위해 컨버팅 방법을 찾아봤는데 딱히 방법이 없더군요;
결국 맵핑 테이블을 만드는 수밖에 없다는 결론에 이르러 맵핑 테이블을 사용한 디코딩 코드를 만들었습니다.
소스코드 첨부합니다. (맵핑 테이블 데이터 때문에 파일 사이즈가 꽤 되네요;)
사용은 아래와 같이 합니다.
파일 사이즈가 조금 작은 놈을 하나 더 만들어 봤습니다.
대신 초기화 속도가 좀 느립니다 (제 PC 에서 0.2~0.3초 정도)
제가 만든 코드이긴 하지만 가능한 클라이언트 사이드에서 EUC-KR -> UTF-8 컨버팅 할 작업을 만들지 않아 이 코드를 가능하면 안 쓰는 것이 좋지 않을까 생각합니다.
- 영양가 있는 포스팅인가요
-
(총 8분이 투표해서 4.3점)
4.3점
Trackback Address :: http://hooriza.com/trackback/1804