윈도우+c 환경에서 utf-8 문서 불러오기 및 저장.
프로그래밍 중에 utf-8문서를 불러오거나 작성해야하는 경우가 생겼습니다.
그런데 setlocale 로 utf-8 설정을 하고 파일을 열어보아도 콘솔에 뿌리면 한글이 다 깨져서 나옵니다.
fopen에 ccs를 주면 아예 실행 시 fgets에서 에러를 뿜습니다.
제대로 열리는지 확인하려고 아래처럼 소스를 짰습니다.
ccs 사용방법은 아래 주소를 보고 따라했는데도 에러가 떠서 원래 쓰던 방법에서 값만 아래 소스처럼 주었습니다.
https://msdn.microsoft.com/ko-kr/library/yeby3zcb.aspx
에서 나온 방법은 fopen(&fp, "newfile.txt", "rt+, ccs= encoding ");
그러나 위 문서 상단에서도 그렇고 VS2013에서도 &fp에 대응하는건 없어서 그전에 쓰던 방식대로 열었습니다.
#include
#include
#include
int main(void)
{
FILE *fp;
char str[1024];
setlocale(LC_ALL, "ko_KR.UTF-8");
fp = fopen("a.xml", "r, ccs=UTF-8");
while (!feof(fp)) // 파일의 끝을 만난 때 까지 루프
{
fgets(str, 1024, fp);
printf("%s", str);
}
fclose(fp);
system("pause");
return 0;
}
댓글 달기