2012-01-02 2 views
1

stdin이 사용하는 문자 인코딩에 관계없이 표준 입력의 각 문자의 UTF-8로 인코딩 된 16 진수 값을 표시하는 ANSI C 프로그램을 작성해야합니다. 예를 들어,stdin의 UTF-8 인코딩 값을 얻는 방법은 무엇입니까?

AÀĀ 

41 
C0 
0100 

은 UTF-8 문자 인코딩을 변환한다 C의 함수 있는가 수득?

+1

그 값이 그 세 문자의 UTF-8 값이 아니다. UTF-8은 문자 표현의 일부로 '01'또는 '00'을 사용하지 않습니다. – bmargulies

+1

예제로 판단하면 UTF-8 16 진수 값 (41 c380 c480)이 아닌 유니 코드 코드 포인트를 인쇄하려고합니다. – ugoren

답변

4
당신이 오는 것을을 알고 하지 않는

당신은 UTF-8을 끌 수 없습니다. 당신은 표준 입력의 인코딩을 알고 있다면, 당신은 UTF-8로 변환 iconv 또는 ICU4C을 사용하여, 다음의 진수를 덤프 할 수 보통의 종류의 길. 어떤 경우에는 당신은 표준 입력은 LANG 환경 변수에 지정된 로케일에 맞는 가정 할 수 있지만, 아무것도 실행에서 누군가를 중지하지 :

yourprogram < SomeFileFullOfISO-2022-JP 
+0

자, 자격을 갖춘 추측을 할 수 있습니다. UTF-8을 제외하고는 UTF-8처럼 유효성을 검사하지 않습니다. –