잘못된 플래시 한글 깨짐 방지 코드

dev | 2007-07-26

쇼핑몰 등에서 쉽게 볼 수 있는 플래시의 깨진 한글 플래시에서 외부 데이터와 연동작업을 하다 보면 한글이 깨지는 경우가 많습니다. 기본적으로 윈도우에서 작업을 하게 되면 거의 대부분이 이러한 문제를 겪게 될 것 입니다. 네이버 같은 곳에서 검색을 해 보면 아래와 같은 해결책을 제시하는 글들이 많습니다.

System.useCodepage = true; // 한글 깨짐 방지

위와 같은 코드를 플래시 처음에 넣으면 한글이 안 깨진다고 하는 글들이 많습니다. 그리고 실제로 윈도우 환경에서는 한글이 제대로 나옵니다. 하지만 이는 매우 잘못된 방법입니다.

정확한 버전은 기억이 안나는데 MX때인가 플래시의 내부가 유니코드를 사용하게 변경된 적이 있습니다. 저 코드도 그때 추가된 구문일텐데요. 플래시에서 useCodepage의 기본값은 false이고 이 상태에서는 플래시가 유니코드를 사용해서 데이터를 처리합니다. 과거의 시스템 인코딩을 따라가는 방식이 너무 문제가 많았기 때문에 유니코드 방식으로 변경된 것인데, 한국에서 만들어지는 대부분의 플래시들이 아직까지도 새로운 방법을 따르지 않고 위의 코드를 삽입하여 예전의 구식 방법을 사용하고 있습니다. 게다가 대다수의 사람들이 이 방법을 완전한 해결책으로 생각하고 있습니다. 이 방법은 한국어 설정이 되어 있는 윈도우에서만 한글이 정상적으로 나오는 임시 해결책입니다. 지역 설정이 한국으로 되어 있지 않은 윈도우나 유니코드 기반으로 되어 있는 리눅스와 맥에서는 한글이 깨져서 나오게 됩니다.

앞으로는 저렇게 옛날 방식을 사용하지 말고 데이터 인코딩을 유니코드로 사용하는 것을 권장합니다. 유니코드를 사용하려면 윈도우 환경에서는 유니코드를 지원하는 에디터가 필요하지만 드림위버나 에디트 플러스2 같은 많은 에디터들이 유니코드를 지원하기 때문에 큰 어려움은 없을 것입니다.

드림위버에서는 "파일 - 새파일" 메뉴에서 XML을 선택해서 새 XML파일을 만들고 "수정 - 페이지" 속성 메뉴에서 문서 인코딩을 유니코드로 선택하면 됩니다. 에디트 플러스2에서는 새 파일을 생성하고 이 문서를 우선 저장합니다. 그리고 "Document - Reload As"를 선택하여 UTF-8을 선택해서 문서를 다시 로드하면 에디트 플러스2 우측 하단에 UTF-8이라고 표시된 것을 보실 수 있습니다. 윈도우 기본 에디터인 메모장(notepad)역시 유니코드를 사용할 수 있습니다. 저정할 때에 인코딩을 UTF-8로 선택해 주면 됩니다.

최근에 이와 동일한 문제로 싸이월드 홈2 쪽에 화면까지 캡춰해서 문의를 보낸적이 있는데 CR팀과 개발팀 모두 이러한 쪽을 너무 모르더군요. 4~5차례 메일로 내용을 주고 받다가 CR팀이 너무 안일하게 응대를 해줘서 그냥 관뒀던 기억이 납니다. (지금 확인해 보니 문제가 해결이 됐군요.)

이 내용을 널려 알려서 앞으로는 잘못된 방식으로 플래시를 만들지 말고 보다 나은 방법으로 플래시를 만들 수 있도록 해 주세요.

Comments

  • 홍민희 2007-07-26

    Flash는 문외한이라 Mac에서 왜 자꾸 한글이 깨지는지 모르고 있었는데, 그런 이유가 있었군요. 좋은 정보 감사합니다.

  • freeism 2007-07-27

    제가 예전에 이걸 몰라서 진행하던 프로젝트가 진상이 난 적이 있었더랬죠. ㅠㅠ 서로 다른 작업자가 서로 다른 인코딩을 해놔서 사이트의 일부만 깨져버리는...;; 흐미 생각도 하기 싫네요. ㅋ ^^:;

  • noname 2007-07-27

    보통 우리나라에선 저런 문제가 생길시, 근본을 고치려들지 않고 그저 겉보기만 해결된 것처럼 되면 넘어가는 팁이 넘치죠. 옛날에도 그랬던 게 지금도 계속 이어져오고 있는 것.. 이런 정보는 좀 더 널리 알려질 수 있도록 국내 교육 센터에서 지침으로 내려줬으면 좋겠군요. 개인 블로그에서만 알려지기엔 너무나도 아까운 정보입니다. 그런데 일본 사이트도 가끔 플래시의 글자가 깨져서 나올 때가 있습니다. 이 경우 브라우저의 인코딩을 뭘로 설정해도 반드시 플래시 내부의 글자는 깨지는 사태가 일어나죠. applocale을 통해서 브라우저 자체를 일본어로 띄우지 않는 한 해결 불가능. 그쪽도 자국의 언어 코드에 대해 집념이 강한 듯 해서 서로 시간이 많이 필요할 것 같군요.

  • kingori 2007-07-27

    굳이 다른 에디터 찾을 필요도 없습니다. 우리의 구세주, notepad 도 unicode를 지원하거든요. 다른 이름으로 저장 밑에 보시면 인코딩 설정 부분이 있습니다. :)

  • 입명이 2007-07-31

    헉.. 플래쉬도 손보시나요? ㅋ

  • 신현석 2007-07-31

    플래시도 클라이언트 인터페이스니까 어떻게 구동되는지는 알고 있어야죠. 무비를 직접 만들지는 않아도요. :)

  • ssal 2007-08-02

    센스쟁이!

  • 마잇 2007-08-03

    좋은 내용을 잘 짚어주신 것 같습니다. 저 같은 리눅스 사용자들에게는 불편했던 부분인데 웹 개발하시는 분들에게 좋은 참고가 되길 바랍니다.

  • 교강용 2014-09-15

    7년이 지난 지금, 아직도 이 문제는 현재진행형입니다. 문제 특성상 개발단계에서 한글윈도를 사용할 경우 절대 미리 알아챌 수 없으므로 아직도 끈질기게 살아남아있는 것이죠. 이 문제가 하도 많이 발생하니까 어처구니없게도 일부 외국인들은 플래시 한글을 보려면 플래시 플레이어에 뭔가 추가 설정을 하거나 한국어 지원 추가기능을 깔아야 된다고 생각하기까지 하나봅니다. (URL참고.) 상식적으로 이렇게 많이 발생하는 문제라면 개발단계에서 작은 경고라도 띄워줄법한데.. 어도비의 책임도 있어보이는군요. 개발자나 테스터는 가급적이면 한글 윈도를 사용하지 말아야 하는데 이것도 바뀔리가 없는 문제고..

Post a comment

:

: 공개 되지 않습니다. Gravatar를 표시 합니다.

:

: HTML 태그를 사용할 수 없습니다.