결국 폐를 끼치네요. DHTML Editing Component에서의 문제...
Google을 통해서 몇일을 찾아봤지만, 속시원한 해답을 얻지 못해 이렇게 글을 올리게 되었습니다.
Web Editor로 DHTML Editing Component(TriEditDocuemnt)를 사용중에 있습니다.
이 콤포넌트에서 작성된 문서를 UTF-8로 저장을 하고 싶은데요.
IE8이하에서는 Default_CodePage(HKCU/Software/Microsoft/Internet Explorer/International/) 라는 레지스트리 수정(e9 fd 00 00)을 통해 해당 Control에서 UTF-8로 저장이 되도록 하고 있었습니다.
그런데, Win7, IE9 환경에서 IPersisteFile의 Save 메소드를 통해 로컬에 저장을 시켜보면, charset이 ks_c_5601-1987로 저장이 되네요. 그래서 서버로 가는 모든 문서들의 내용이 깨집니다.
즉, IE8이하에서는 '가나다'라는 입력을 하고 로컬에 저장하면 아래와 같이 저장되지만,
첨부한 2.png처럼 내용이 보이구요.
WIN7, IE9에서 저장하게되면 아래 처럼 됩니다.
첨부한 1.png처럼 내용이 보입니다.
이게 단순히 META tag의 내용만 바꾸는 거라면 강제로 해보겠는데, 문서들을 EditPlus같은 에디터로 열어보면, charset이 UTF-8인 경우에는 문서형식이 UTF-8로 저장이 되고, ks_c_5601-1987의 경우에는 ANSI로 저장이 되서 바이너리형태로 보면 완전히 다른 문서가 되네요.
구글을 찾아보니, http://support.microsoft.com/kb/956844/ko 같은 내용이 있어서 그런거 같은데, 단순히 META tag의 charset만 바꾼다고 해결되지는 않더군요.
혹시나 해서 글 올려봅니다. 혹시 아시는 분들이나 고생하셔서 수정하신 분들이 계시면 좀 알려주세요.
부탁드립니다.
...
무식한 답변이지만, 컴포넌트의 저장 기능을 사용하지 마시고, 본문 내용 string 을 encoding 하셔서 직접 저장하시면 해결은 될듯...
컴포넌트 굳이 사용하시려면 컴포넌트 설정값들 조정해보셔야할텐데 버그가 있으면 해결 불능인지라...
-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr
답변 감사드립니다.
본문 내용을 직접 긁어 올 수가 없더군요. 그래서, 서버에 파일을 올리기 전에 ANSI형태로 저장되어 버린 file을 UTF-8로 바꿔치는 방법을 시도 해봐야 할 것 같네요.
이 Control 대신, 다른 Control이나 Free WebEditor를 사용 하려고 봤더니, 기존 Data의 Migration 이 장난이 아니더군요.
하여튼...
답변 감사드리고요.
수고하세요.
댓글 달기