2010-05-14 3 views
2

으로 변환합니다. 을 사용하여 16 진수 문자 9e (이맥스에서는 \236으로 표시됨)을 삽입했습니다. 그러나 C 프로그램에서이 값을 읽을 때 9e0x9ec2이됩니다. 이 c2은 어디에서 왔으며 어떻게 제거합니까?C는 emacs의 HEX 값을 파일의 잘못된 값

+0

이 문자를 읽으려면 사용중인 코드를 게시해야합니다. –

+0

만약 내가 코드를 가지고 있다면, 나는 확실히 그렇게 할 것이다. 이진 실행 파일 (코드는 쓰지 않았다)이다. 내가 말할 수있는 건 내가 fscanf를 사용하여 .txt 파일에서 문자열을 읽었다는 것이다. – sepiroth

답변

4

유니 코드 문자 U + 009E는 바이트 C2 9E로 UTF-8로 표시됩니다 (이 바로 가기 converter 참조). 이맥이 UTF-8로 파일을 저장하도록 설정되었을 가능성이 있습니다. M-x find-file-literally으로 이맥스 파일을로드하고 \302\236 (C2 9E의 8 진수 표현)으로 나오는지 확인하십시오. 그렇다면 \302을 삭제하고 프로그램이 더 원활하게 실행되는지 확인하십시오.