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

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팀이 너무 안일하게 응대를 해줘서 그냥 관뒀던 기억이 납니다. (지금 확인해 보니 문제가 해결이 됐군요.)

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

참고 : Working with Multiple Languages
by Anna 안나 2009. 1. 2. 12:37