본문 바로가기
Borland

WideString 결과값과 HTML에서 표기 되는 유니코드값의 차이

by leo21c 2010. 4. 22.

"박"을 WideString("박")으로 처리해서 나온 결과값은 \xBC15이다.

그러나 이 값을 html code에 적용하면 화면에 표시가 되지 않는다.

따라서 \xBC15 => 박 로 변경해서 처리해야 한다.

(16진수)Hex인 BC15를 10진수로 변경하면 48149값이 나온다.

void __fastcall TPrintBrowserWindow::AnsiToUnicode(AnsiString TextString, AnsiString &UnicodeString)
{
  int length, wlength=0;
  WideString w_string = WideString(TextString);

  length = TextString.Length();
  wlength = wcslen(w_string.c_bstr());

  if (length == wlength) {
    UnicodeString = TextString;
    return;
  }

  for (int i=0; i < wlength; i++) {
    UnicodeString += "&#";

    //%d로 처리하여 10진수 값으로 data를 변경한다.
    //%X라면 대문자로 표기되는 16진수 값으로 변경된다.
    UnicodeString += AnsiString().sprintf("%d",w_string.c_bstr()[i]);
    UnicodeString += ";";
  }
}

위와 같이 하면HTML에서 사용되는 표기방식으로 변경이 된다.