'utf-8'에 해당되는 글 1건
C++, 텍스트 UTF-8파일로 저장하기 :: 2007/11/22 14:19
#include <stdio.h> // fopen, fputs 사용하기 위함
#include <windows.h> // MultiByteToWideChar, WideCharToMultiByte 사용하기 위함
#define MAXPACKETLEN 999
// 전반부 생략
FILE* fOutFile1; // 파일 출력 스트림
fOutFile1 = fopen( SavedFileName, "wt" ); // 파일스트림을 염
// 사용하고자하는 변수 선언
char* pPacket_ASCII = new char[MAXPACKETLEN];
unsigned short* pPacket_UNICODE = new unsigned short[MAXPACKETLEN*2];
char* pPacket_UTF8 = new char[MAXPACKETLEN];
// pPacket_ASCII에 저장하고자 하는 내용 저장 중반부 생략
// ASCII -> UNICODE
MultiByteToWideChar( CP_ACP, 0, pPacket_ASCII, -1, pPacket_UNICODE, MAXPACKETLEN );
// UNICODE -> UTF-8 길이 측정
int nLen = WideCharToMultiByte( CP_UTF8, 0, pPacket_UNICODE, -1, NULL, 0, NULL, NULL);
// UNICODE -> UTF-8
WideCharToMultiByte( CP_UTF8, 0, pPacket_UNICODE, -1, pPacket_UTF8, nLen, NULL, NULL);
fputs( pPacket_UTF8, fOutFile1 ); // 파일에 출력
fclose(fOutFile1); // 파일 출력 스트림을 닫음
P.S. ASCII에서 바로 UTF-8로 바꾸지 못함, Unicode로 변경후 UTF-8로 바꾸어야 함, UTF-8은 2Bytes전용이 아니므로 _wfopen을 사용하지 않음, open시 mode는 wb가 아닌 wt로 해야 함
출처 : http://blog.naver.com/wideeyed/80041884392


