(완료)wxWidget에서 한글 출력

kknd8080의 이미지

소켓프로그래밍중인데

서버에서 문자열을 전송받아서 오면 그걸 wxGrid상에 출력해주면 되는 간단한 프로젝트입니다.

서버는 윈도우에서 구현햇고 클라이언트는 리눅스에서 구현을 했습니다.

문제는 윈도우와 리눅스의 캐릭터셋이 달라서 잇지

리눅스상에서 만든 한글은 출력해보면 한글로 출력이 잘되지만

윈도우서버에서 받아온 한글문자열은 utf8포맷으로 변환해 주어도 되지않습니다

wxString *str = new wxString("한글",cnvUTF8);
wxMessageBox(*str);

해주어도 한글이 출력되지 않습니다

검색을 해보니 윈도우 한글포맷이 리눅스한글포맷과 틀려서 라고 그러는데

방법이 없을까요?

검색을 해보아도 자료가 잘 없네요..

윈도우서버에서 받아온 한글문자열을 리눅스 wxWidget wxMessageBox로 출력하고 싶습니다.

고수분들의 답변 부탁드립니다.

gardner의 이미지

그냥 보내서는 프로그램에서 내부적으로 쓰는 문자열 인코딩 방식이 서로 다르기 때문에 문제가 생길 수 있습니다. 똑같은 wxWidget 라이브러리라 할지라도 OS가 다르면 다를 수 있습니다.

그러니까, 특정 인코딩 방식으로 변환 시킨 뒤에 전송하고, 받은 다음 다시 변환시키도록 하면 됩니다.

서버: 내부 유니코드 문자열을 UTF-8로 인코딩
네트워크: UTF-8인 문자열이 전송됨
클라이언트: 받은 문자열을 UTF-8에서 내부에서 사용하는 인코딩 방식으로 전환.

이런 과정을 거쳐야 합니다.

그러니까 보낼 때도 변환시키고, 받을 때도 변환시켜야 된다는 말입니다.

그리고 원론적인 얘기를 하자면, 네트워크를 통해서던 디스크를 통해서던 다른 컴퓨터와 자료를 주고받아야 하는 경우에는 무조건 직렬화(serialize) 과정을 거치는게 좋습니다.

kknd8080의 이미지

답변해주신내용 많은 도움이 될거 같습니다.

무조건 직렬화(serialize) 과정을 거치는것이 좋다고 하셧는데 이부분이 잘 이해가 가지 않습니다.

서버에서 보내는 과정과 클라이언트에서 받는과정을 일치 시키란 말씀이신지 잘 모르겟습니다.

이글보시면 알려주시면 좋겟습니다

gardner의 이미지

그냥 검색엔진에서 직렬화 또는 serialize 로 검색해보시는게 빠를 듯... 저도 대충 그정도로만 이해하고 있고, 그보다 더 나은 설명을 드리기 힘듭니다.

http://www.javaservice.net/~java/bbs/read.cgi?m=devtip&b=javatip&c=r_p&n=1117764219&p=3&s=t

kknd8080의 이미지

클라이언트에서는 UTF8로 형변환을 해주엇지만

서버에서 형변환을 직접적인 데이타에 해준것이 아니라 패킷 자체에 해준것이 원인이엇던것 같습니다

패킷에 문자열 데이타자체에 UTF8형식으로 타입변환을 해주니

클라이언트에서 한글이 잘 출력되었습니다.

하지만 윈CE에서는 또 문자열이 깨지는 현상이 생기는데 이것은 디파인을 해주어야 할거 같습니다

답변 감사합니다

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.