게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
InternetReadFile로 데이터를 읽어올때 한글 깨짐 문제
게시물ID : programmer_8684짧은주소 복사하기
작성자 : MensOf
추천 : 0
조회수 : 2826회
댓글수 : 0개
등록시간 : 2015/03/17 15:59:05
옵션
  • 본인삭제금지

안녕하세요 초보개발자입니다.

 

현재 InternetReadFile로 웹상의 데이터를 읽어왔는데 한글부분이 깨지는 현상이 발견되었습니다.

그리고 읽어온 파일을 텍스트에 써서 보니 숫자값도 2byte로 넘어오는것 같더라구요...

 

이것저것 찾아보면서 uft-8->unicode->ansi 로 인코딩을 해야된다고 해서 그부분도 해보았는데 여전히 깨지는 현상이 나타납니다. 웹에서는 기본적으로 UTF-8로 charset이 되어있는데 EUC-KR로 변경해보아도 동일합니다.

기본적으로 웹에서 내려주는 방법이 잘못된건가요 아니면 제가 받아서 인코딩을 새로 해야 하는건가요? 아래는 c++ 소스입니다.

char szBuf[40+1] = {0};
DWORD dwSize = 0;
BOOL bRead = TRUE;
int iCnt = 1;
int iLen = 0;
char cTemp[40+1];
 
BSTR bstr;
FILE* fp = fopen("Hgfragile.txt", "a");
while(bRead)
{
memset(szBuf, 0x00, sizeof(szBuf));
memset(cTemp, 0x00, sizoef(cTemp));
 
bRead = InternetReadFile( hOpenRequest,
szBuf,
sizeof(szBuf)-1,
&dwSize);
if(dwSize == 0 || szBuf[0] == 0x00) break;
 
iLen = MultiByteToWideChar(CP_ACP, 0, szBuf, lstrlen(szBuf), NULL, NULL);
bstr = SysAllocStringLen(NULL, iLen);
MultiByteToWideChar(CP_ACP, 0, szBuf, lstrlen(szBuf), bstr, iLen);
iLen = WideCharToMultiByte(CP_ACP, 0, bstr, -1, cTemp, 0, NULL, NULL);
WideCharToMultiByte(CP_ACP, 0, bstr, -1, cTemp, iLen, NULL, NULL);
 
strTmp.Format("szBuf = %s\ncTemp = %s\n\n", szBuf, cTemp);
iCnt++;
fprintf(fp, strTmp);
}
fclose(fp);

고수님들 부탁드립니다.

 

감사합니다.

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호