VCL for the Web에서 한글 깨짐 문제

Delphi/C++Builder의 2009 버전과 2010 버전에서는, VCL for the Web (IntraWeb)에서 한글을 사용하면 한글이 깨져 나오는 버그가 있습니다. 이 버그에 대해 여러 번 문의를 받았는데, 조금 전에 문제 해결 방법을 알아냈습니다.

 

위 파일을 다운받아 컴파일할 VCL for the Web 프로젝트에 추가해주기만 하면 됩니다. 그러면 언제 그랬느냐는 듯이 한글이 깨끗하게 입력, 출력 됩니다. uses 할 필요도 없고, 단지 프로젝트 추가로 끝입니다.

(추가: 이 파일은 2010 버전에는 기본적으로 포함되어 있으므로, 별도로 다운로드하거나 할 필요 없이, 그냥 소스 내에서 uses에서 추가해주시면 됩니다)

Delphi/C++Builder 2009 버전에서는 IntraWeb의 업데이트된 버전으로 업데이트를 해야 합니다. (2010 버전은 업데이트된 IntraWeb이 포함되어 있어 업데이트할 필요가 없습니다) 위 유닛이 제대로 동작하려면 10.0.15 버전 이상이 필요하며, 오늘 현재 IntraWeb의 최신 버전은 10.0.17 버전입니다. 업데이트된 IntraWeb은 아래 사이트에서 다운로드할 수 있습니다.

http://www.atozed.com/IntraWeb/Download/Files/index.EN.aspx

그리고 아래의 링크에서 Delphi/C++Builder 번들된 IntraWeb을 위한 업데이트 키를 받아야 합니다.
프로페셔널 에디션 - http://purchase.atozed.com/rinok/Edition.aspx?ID=10090
엔터/아키 에디션 - http://purchase.atozed.com/rinok/Edition.aspx?ID=10091

사족...
위의 UTF8ContentParser.pas 유닛은 VCL for the Web의 제작사인 Atozed에서 만든 것이 아니라 엠바카데로에서 만든 것이라고 하는데요. 한두달 전 쯤인 것 같습니다. 그런데 이게 IntraWeb에도 포함되지 않고 엠바카데로에서도 공식적으로 제공되지 않는 이유에 대해서는 잘 모르겠습니다. 본사에 문의를 해보겠습니다만, 일단 (문제가 되기 전까지는) 자유롭게 사용하시기 바랍니다.

4 comments for “VCL for the Web에서 한글 깨짐 문제

  1. 박정립
    2009.11.03 at 4:27 오전

    delphi 2010 Ent. 에서 IntraWeb Demo의 FishFact 프로젝트에 해당파일 Add한후 실행하면 콘트롤들을 클릭해도 화면만 Refresh되고 제어가 안되네요(네비게이터의 편집,추가번튼을 클릭해도 편집모드 전환이 안됩니다). 해당 Pas파일을 프로젝트에서 Remove시키면 잘 되구요. 그리고 IWServerController 콤포넌트의 Version은 10.0.0으로 뜨네요 (이게 10.0.0.15 이상이 되어야 하나요--Delphi 2010 인데요 Upgrade Patch1 적용했구요).

    • 박지훈.임프
      2009.11.04 at 12:54 오전

      살펴보니... FishFact 데모 프로그램의 왼쪽 아래에 있는 TIWDBFile 컴포넌트가 문제네요. 이 컴포넌트는 데이터베이스로 파일을 업로드하기 위해 사용하는 것인데, iframe을 이용해서 프로그램 자체와는 무관하게 독자적인 웹 요청을 하도록 되어 있습니다. 그 요청 부분이 먹통이 되는군요. 이건 인트라웹의 벤더인 Atozed에서 수정하지 않는 한 다른 방법이 없을 것 같습니다.
      요약하자면, UTF8ContentParser.pas 파일을 사용해서 한글 깨짐 문제를 막으면 TIWDBFile 컴포넌트를 사용하면 안됩니다. 이걸 피하려면.. 파일을 업로드하기 위해서는, 한글 입력이 필요 없는 별도의 입력 화면(정확하게는 별도의 프로젝트)을 만들고 거기서 파일 업로드를 해야 할 듯 싶네요.

  2. 박정립
    2009.11.04 at 4:10 오전

    TIWDBFile 없애니까 잘됩니다. ㅋㅋㅋ 쌩큐베리감사.

  3. 박진동
    2009.11.17 at 12:24 오후

    인디는 언제 해결될런지.. 앞에 있는 회피 방법으로 해도 안되더라구요.. 그래서 현재 WebBrowser로 땜빵하고 있어요..ㅜㅜ

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다