C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[61058] Re:Re:UNICODE와 ANSI간 변환 알려주세요.
RD [] 2985 읽음    2010-05-13 09:03
이현수님, 해결했습니다. 정말 감사합니다!! ^^

이현수 님이 쓰신 글 :
: : 서버에 저장되어 있는 문자열은 AnsiString이라서
: : 서버에서 불러와 TNT Edit박스에 뿌려줄 때 한글이 깨지고(스탠다드 edit박스도 깨집니다),
: 서버에 저장되어 있는 문자열이 한글코드페이지(949)의 문자열이 확실하다면,
: 서버에서 받을 때 char 배열에 받아서 MultiByteToWideChar(949,,,,,)로 변환한 결과 wchar_t 배열을 TNT Edit박스의 Text에 대입해야 합니다.
: 한편, TNT Edit의 Font의 관련 항목들도 한글에 맞게 설정해주어야 제대로 한글이 나타나고
: TNT Edit의 ImeName이 한국어IME여야 제대로 입력이 됩니다.
:
: : Edit박스에 문자열을 써서 저장할때도
: : AnsiString형에 Unicode로 작성한 문자열이 들어가서 그런가 물음표로 저장이 되고,
: Edit박스가 TntEdit라면,  프로그램 실행시 AnsiString이 참조하는 코드페이지가 한글이 아니어서
: AnsiString 내부적으로 유니코드문자를 멀티바이트문자로 변환할 때 다른 문자번호로 변환되기 때문이므로
: 변환이 필요 없는 WideString 또는 wchar_t 배열에 저장해야 합니다.
: 서버에서 멀티바이트 문자열로 저장한다고 하므로, 이 유니코드 문자열을 서버에 보낼 필요가 있을 때는 WideCharToMultiByte(949,,,,,)한 결과 멀티바이트 문자열인 char 배열의 내용을 보내야 합니다.
:
:
: RD 님이 쓰신 글 :
: : 볼랜드 C++ 빌더 6 쓰고 있습니다.
: :
: : 프로그램에 쓰인 한글이 모두 AnsiString으로 이루어져있는데
: : 영문XP에서 돌려야하는 상황이 생겼습니다.
: : 제어판에서 지역설정은 그대로 두고 한글이 보여야합니다.
: :
: : 한글 깨지는 컴포넌트들은 TNT컴포넌트로 교체하였고,
: : 어쩔 수 없는 것들은 영문으로 바꿔서 왠만한 것들은 거의 완성이 됐습니다.
: :
: : 그런데 문제가 생겼습니다.
: : 서버에 저장되어 있는 문자열은 AnsiString이라서
: : 서버에서 불러와 TNT Edit박스에 뿌려줄 때 한글이 깨지고(스탠다드 edit박스도 깨집니다),
: : Edit박스에 문자열을 써서 저장할때도
: : AnsiString형에 Unicode로 작성한 문자열이 들어가서 그런가 물음표로 저장이 되고,
: : 검색도 되지 않습니다.
: :
: : MultiByteToWideChar, StringToWideChar 등
: : 인터넷에서 Unicode와 Ansi간 변환 함수는 전부 찾아다가 써봤지만 소용이 없었습니다.
: :
: : 도대체 어떻게 해결해야할까요..
: : 도와주세요.

+ -

관련 글 리스트
61033 UNICODE와 ANSI간 변환 알려주세요. RD 1626 2010/05/12
61057     Re:UNICODE와 ANSI간 변환 알려주세요. 이현수 2489 2010/05/13
61058         Re:Re:UNICODE와 ANSI간 변환 알려주세요. RD 2985 2010/05/13
61034     Re:UNICODE와 ANSI간 변환 알려주세요. 김도완 1687 2010/05/12
61035         Re:Re:UNICODE와 ANSI간 변환 알려주세요. RD 1882 2010/05/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.