[C/C++] 문자 혹은 문자열이 특정 인코딩으로 인코딩되어 있는지 확인하는 방법을 알고 싶습니다.

vudghkzm의 이미지

서버 - 클라이언트간에 문자를 주고 받습니다. 문자는 특정 인코딩형식(예 : euc-kr, utf-8 등등)으로 주고받기로 약속되어 있습니다.

이때 서버에서는 클라이언트가 보내준 패킷에서 문자(혹은 문자열) 부분을 char(혹은 char*) 타입으로 읽습니다.
그리고 서버에서는 이 문자(혹은 문자열)가 약속된 인코딩으로 보내주었는지 확인하는 작업을 해야 합니다.

유닉스 환경에서 C/C++로 이런 작업을 손쉽게 처리할 수 있는 방법을 알고 싶습니다.

bushi의 이미지

으음... man 3 iconv 해서 슬쩍 보시고,
man 1 iconv 도 슬쩍 보고 짱돌을 굴립니다.

iconv -f utf8 -t utf8 ~/README.utf8.txt > /dev/null || echo "not UTF-8 !!"
iconv -f euckr -t euckr ~/README.utf8.txt > /dev/null || echo "not EUC-KR !!"

iconv() 를 구워삶아서 똑같이 하면 되겠지요.