wstring과 L"한글" 의 관계?

freezm7의 이미지

항상 string 만 사용하다가,

한글 처리가 관련되어서, wstring을 사용하고 있습니다.
(사실, wstring이 없어서 WString이라는 것을 제가 만들어서 쓰고 있지요.
임베디드 쪽이라...)

wstring 을 생성할 때는 const char* 대신,
const wchar_t* 을 넘겨 주어야 하죠?

즉,

wstring Str(L"ABC");

이런 식으로요...

" 앞에 L 을 붙여서 "ABC" 가 3바이트가 아니라 6바이트가 되게 해야 하는 것은 압니다.

그런데,

wstring Str(L"한글");

이렇게 하면, "한글" 이라는 4바이트가, 각각의 1바이트가 2바이트로 바뀌면서,
결국 8바이트 wchar_t 형 문자가 되더군요.

그렇다고,

wstring Str("한글");

처럼 L 을 빼버리면 컴파일이 안되구요..

소스 파일에 한글을 어떻게 집어 넣어야 할지 모르겠습니다.
0xAC00 이렇게 직접 유니코드를 집어넣는 방법은 물론.. -_- 해결책이라 할 수는 없겠죠.

한글 처리 쪽 일을 안 해봐서 그러는데,
소스 파일에 한글 텍스트를 어떻게 넣을 수 있을 까요?
wchar_t 배열루요.

hwang의 이미지

gcc를 컴파일할때 MULTIBYTE_CHARS라는 것을 정의하도록 하고
컴파일하셔야 L이 현 locale에따라 unicode로 변환을 해 줍니다.
하지만 이 것도 native compiler일때 이야기이고 cross compiler일 경우는
무시가 되므로 소용이 없을거같네요.
gcc에서 해당 파일을 손 보시든지 아니면 class에
그냥 char *을 받아 변환해주는 생성자를 하나더
만드셔야할거같네요.

Seven..의 이미지

TCHAR를 사용하시고

맨 위에

#define UNICODE
#define _UNICODE

이런건 어떤가요? 윈도만 되는건가 ;;; 요즘 TCHAR에 푹 빠져서 -_-ㄱ

VENI VIDI VICI

vuccell의 이미지

제일 좋은 걸 추천하자면(야매이긴 합니다.)
'한글'을 인코딩한 "%C7%D1%B1%DB" 값으로 세팅하신후에 디코딩하세요...

그런데 유니코드로 쓰셔야 한다면... '한글'의 유니코드코드값을 직접 넣으시거나(-,-;;) UTF8스트링으로 변환한 인코딩값을 넣어 decode하신후에 다시 유니코드로 변환하시거나... 위의 분 말씀대로 _UNICODE를 define해서 String으로 유니코드를 처리하시거나...

제 생각엔 유니코드에 대한 이해를 위해 좀더 노력하시는 것이 나을듯... -,-;; (책을 보시거나 unicode.org를 독파하시거나... UTF8 spec문서를 찾아보신다거나 말이죠..)

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.