플래시와 XML 인코딩이 다른 경우 데이터 로드하기

보통 AS3에서 외부 데이터를 로드하기 위해서 URLLoader를 많이 사용합니다. 그런데 플래시의 인코딩 설정과 로드할 XML 또는 텍스트 파일의 인코딩 설정이 다른 경우에 2바이트 언어의 문자가 깨져서 들어오죠. 그래서 System.useCodePage 설정을 바꿔주거나, 텍스트 파일의 인코딩을 변경하거나 둘 중 하나를 해 주어야 합니다. 뭐 좀 귀찮지만, 여기까진 문제가 없죠.

그런데, 만약, 서로 다른 인코딩의 텍스트 파일 2개 이상을 동시에 로드해야 하는 경우라면 OTL 이죠. 이럴 때 XMLLoader를 사용하면 문제가 말끔히 사라집니다. ^^

상황 1
플래시 EUC-KR —– 텍스트 UTF-8
XMLLoader.load(UR [,”utf-8″]);==> 한글 정상 표시
URLLoader.load(UR) ==> 한글 깨짐
(UR은 URLRequest 객체)

상황2
플래시 UTF-8 —– 텍스트 EUC-KR
XMLLoader.load(UR, “euc-kr”) ==> 한글 정상 표시
URLLoader.load(UR) ==> 한글 깨짐

상황3
플래시 UTF-8 —– 텍스트1 UTF-8, 텍스트2 EUC-KR
XMLLoader.load(UR1 [, “utf-8”]) ==> 한글 정상 표시
XMLLoader.load(UR2, “euc-kr”) ==> 한글 정상 표시
URLLoader.load(UR1) ==> 한글 정상 표시
URLLoader.load(UR2) ==> 한글 깨짐

XMLLoader는 내부적으로 URLStream을 사용하는 것으로, URLLoader 대신 URLStream 을 사용하여도 같은 효과를 얻을 수 있습니다.

참고 URL: http://hangunsworld.com/blog/259

9 thoughts on “플래시와 XML 인코딩이 다른 경우 데이터 로드하기”

  1. 요번 신세계몰 작업하는데 아주 유용하게 사용하고 있다. 나도 하나 만들려고 했는데 굳이 만들 필요가 없다고 판단이 되더군
    노드에서 자바스크립트와 타겟에 대한 설명은 없네. 그것도 꽤 재미있는 발상인듯~

  2. 안녕하세요~ 플생사모에서 글을 보고 링크타다 여기까지 오게되었네요^^;;; 항상 좋은 자료 구경 시켜 주셔서 많이 배우고 있습니다~ 마지막글을 읽다가 질문이 생겼는데요 URLLoader의 dataFormat을 Binary로 바꾸어 주는것과는 다른가요? ^^;;;

  3. 아! 다르다는게 어싱크로 거시기 그런거 말고 위에 설명하신 한글깨짐현상 부분 입니다^^;;;

  4. URLStream은 데이터를 바이너리로 읽어서 그대로 가지고 있는 반면,
    URLLoader는 dataFormat를 BINARY로 설정했다고 하더라도, 읽어들인 바이너리 데이터를 플래시 플레이어의 인코딩에 따라서 인코딩한 결과를 가지고 있습니다.
    그러므로 바이너리 데이터를 필요에 따라 원하는 캐릭터셋으로 인코딩할 수 있는 URLStream과 달리, URLLoader는 플래시 플레이어의 캐릭터셋을 따라가는 차이점이 있는거죠.

  5. 아~ 감사합니다~ 덕분에 이해가 되었습니다^^ 항상 좋은 자료 공유해주시는 선배 개발자님들께 감사드립니다~

  6. 수고가 많으십니다. 좋은 자료 봤습니다. 잘 퍼가구요. 근데.
    System.useCodePage 는 어디서 바꾸나요?

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다