반응형

윈도우 메모장에서 저장한 텍스트 파일의 한글 코드 종류 확인


글.  오상문 sualchi@daum.net 

 

윈도우 메모장에서 "123" 텍스트를 

ansi, utf8(BOM), unicode로 지정해서 각각 저장하고 

해당 파일을 바이너리 코드로 읽어오면 다음과 같습니다. 

 

ansi :  0x31, 0x32, 0x33,

utf8(BOM) :  0xef, 0xbb, 0xbf, 0x31, 0x32, 0x33,

unicode : 0xff, 0xfe, 0x31, 0x0, 0x32, 0x0, 0x33, 0x0

 

언어 코드 종류에 따라서 저장 파일 구조가 달라진 것을 볼 수 있습니다.

 

윈도우 메모장은 텍스트 파일을 저장하거나 읽을 때 

utf8(BOM)은 문서 앞쪽 세 바이트 코드( 0xef, 0xbb, 0xbf)로,

unicode는 문서 앞쪽 두 바이트 코드(0xff, 0xfe)를 이용해서 언어 코드를 구분하나 봅니다.

ansi 코드 파일은.특별한 헤더 코드가 없습니다.

 

검사에 사용한 C 언어 코드를 다음과 같습니다. 

 

검사할 텍스트 파일은 

D 드라이브 루트에 ansi.txt, utf8.txt, unicode.txt라고 만들어서 테스트했습니다.

 

#include <stdio.h>
int main()
{  
	int i, size;  
	unsigned char buf[100];  
	FILE * f;
	f = fopen("d:\\ansi.txt", "rb");
	if(f == NULL)    
		printf("파일 열기 에러!\n");  
	else {    
    	size = fread(buf,1,100,f);    
        for(i=0; i<size && i<100; i++)      
        	printf("0x%x, ", buf[i]);
		fclose(f);  
	}
	return 0;
}

 

<이상> 

 

 

 

 

반응형

+ Recent posts