C
윈도우 메모장에서 저장한 텍스트 파일의 한글 코드 종류 확인
수알치
2018. 7. 13. 20:22
윈도우 메모장에서 저장한 텍스트 파일의 한글 코드 종류 확인
글. 오상문 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;
}
<이상>
반응형