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
[74038] Re:한글이 섞인 hex AnsiString 을 한글 AnsiString으로 변환..
StarWagon [starwagon] 4103 읽음    2016-12-10 22:36
System.hpp에 Utf8ToAnsi 라는 함수가 있네요.

	AnsiString data="3132EB9DBC";
	char *u=new char[data.Length()/2+1];
	u[data.Length()/2]=0;

	for (int i = 0; i < data.Length()/2; i++) {
		AnsiString h="0x"+data.SubString(i+1,i+2);
		u[i]=h.ToInt();
	}

	ShowMessage(Utf8ToAnsi(u));
	delete[] u;


만약 없으면... 아래와 같은 함수를 추가해서 사용하세요.
출처 : http://snowbora.tistory.com/370

char* UTF8ToANSI(const char *pszCode, int &length)
{

	BSTR    bstrWide;
	char*   pszAnsi;
	int     nLength;
	nLength = MultiByteToWideChar(CP_UTF8, 0, pszCode, lstrlenA(pszCode) + 1, NULL, NULL);
	bstrWide = SysAllocStringLen(NULL, nLength);

	MultiByteToWideChar(CP_UTF8, 0, pszCode, lstrlenA(pszCode) + 1, bstrWide, nLength);
	nLength = WideCharToMultiByte(CP_ACP, 0, bstrWide, -1, NULL, 0, NULL, NULL);
	pszAnsi = new char[nLength];
	WideCharToMultiByte(CP_ACP, 0, bstrWide, -1, pszAnsi, nLength, NULL, NULL);
	SysFreeString(bstrWide);
	length=nLength;
	return pszAnsi;
}



TMRevolution 님이 쓰신 글 :
: 안녕하세요. qna에는 처음으로 질문으로 올립니다..
:
: AnsiString data = "313233414243" 의 경우
:
: HexToBin을 이용하여 2byte 씩 끊어서 "123ABC"라는 데이터는 얻어냈습니다.
:
:
: UTF-8로 이루어진 한글 HexData는 어떻게 변환해야 되는지 좀처럼 알 수가 없습니다.
:
: AnsiString data = "3132EB9DBC" // "12라"  의 경우에
:
: 똑같이 2바이트씩 HexToBin을 합쳐보기도.
: qna를 참고해서 2바이트씩 끊어서 ToIntDef로 사용해서 합쳐보았지만 숫자, 영문 부분만 정상적으로 변환되고
: 한글 부분은 깨지고 있습니다.
:
: 한글 HexData를  정상적으로 한글로 변환하려면 어떻게 해야되야 하나요?

+ -

관련 글 리스트
74024 한글이 섞인 hex AnsiString 을 한글 AnsiString으로 변환.. TMRevolution 3555 2016/12/06
74038     Re:한글이 섞인 hex AnsiString 을 한글 AnsiString으로 변환.. StarWagon 4103 2016/12/10
74047         Re:Re:한글이 섞인 hex AnsiString 을 한글 AnsiString으로 변환.. TMRevolution 4206 2016/12/14
74033     Re:한글이 섞인 hex AnsiString 을 한글 AnsiString으로 변환.. 금목암[손효철] 4000 2016/12/08
74046         Re:Re:한글이 섞인 hex AnsiString 을 한글 AnsiString으로 변환.. TMRevolution 3896 2016/12/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.