utf16으로 저장된 문서를 fgetc로 읽어내지 못하나요?

dltkddyd의 이미지

struct USI {
	unsigned char front:8;
	unsigned char backend:8;
};
union ATOW {
	USI w_ascii;
	wchar_t wch;
};
 
int main() {
	setlocale(LC_ALL, "korean");//리눅스에서는 setlocale(LC_ALL,"ko_KR.UTF-8");
	FILE* fp=fopen("hello.html","r");
	char ch;
	ATOW atowch;
 
	unsigned cnt=0;
	while(  (ch=fgetc(fp))!=EOF  ) {
		if(cnt%2==0) {
			atowch.w_ascii.front=ch;
		}
		if(cnt%2==1) {
			atowch.w_ascii.backend=ch;
			wprintf(L"%c",atowch.wch);
		}
		//printf("%c",ch);
		//opbitwithand(ch);
		cnt++;
	}
 
	printf("%u\n",cnt);
}

위와 같이 hello.html 문서를 열었습니다. 그리고 저장된 내용은

한 글자입니다. 그리고 이 문서가 저장된 문자코드는 utf16(유니코드)입니다.
fgetc 함수가 '금'이라는 문자를 제대로 읽어들이지 못하네요.

dltkddyd의 이미지

와이드 스트림으로 해보면 될까요?

본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.