반응형
윈도우 메모장에서 저장한 텍스트 파일의 한글 코드 종류 확인
글. 오상문 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;
}
<이상>
반응형
'C' 카테고리의 다른 글
C 언어, 현재 사용 중인 한글 코드를 검사하기 (0) | 2018.07.15 |
---|---|
C 언어, 멀티바이트와 와이드바이트문자 문자열 변환 예제 (0) | 2018.07.14 |
C 언어, 로또 번호 구하는 예제 2 (0) | 2018.07.07 |
C 언어, 로또 번호 구하는 예제 (카드 추출하기) (0) | 2018.07.06 |
C 언어, 순열 자료 출력하기 (0) | 2018.06.16 |