개발환경: Win7 Home, 한글 OS

VC 6.0은 기본적으로 유니코드를 지원하지 않는다.

하여.. 하기와 같이 유니코드를 사용하고자하는 경우...

 

작업순서..

1. 메모장에 일본어등을 입력한후 유니코드로 저장한다.

2. OS의 제어판의 언어 -> 고급 탭(관리자 옵션) -> 유니코드를 지원하지 않는 프로그램용 언어

-> 시스템 로캘 변경 (일본어) 후 Rebooting..

3. 프로그램에서 작성된 1)의 file을 loading한다.

이때는 일본어가 Multi byte 표현되기 때문에 하기와 같은 순서를 따른다.

 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

const int READ_CNT = 200;

CString strbuf;
FILE *fp;
wchar_t buff[READ_CNT]={0,};
char abuff[READ_CNT]="";

fp = _wfopen(CLR_RC_JP_PATH, L"rb, ccs=UNICODE");// 유니코드 바이너리로 파일 오픈.

fgetc(fp); // 2 byte.. reading. to Unicode separator // 최초 2 byte는 해당 file이 유니코드임 알림
fgetc(fp); // 2byte는 삭제..

while(fgetws(buff, READ_CNT, fp) != NULL) // 한줄씩 읽어낸다.
{
int nLen = WideCharToMultiByte(CP_ACP, 0, buff, -1, NULL, 0, NULL, NULL); // CP_ACP/ 949 kor, 932, jp
WideCharToMultiByte(CP_ACP, 0, buff, -1, abuff, nLen, "?", NULL);

strbuf+=abuff;
memset(buff, 0x0, sizeof(buff));
memset(abuff, 0x0, sizeof(abuff));
}

fclose(fp);

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

4. VC 6.0에서 유니코드를 지원하게 하는 방법은 VC 6.0 설치시

첨부 파일 참조 할것..

발췌 : http://www.cyworld.com/handu76/2470611

+ Recent posts