UTF변환 질문....
글쓴이: ssik425 / 작성시간: 수, 2005/01/12 - 3:19오후
locale이 EUC-KR상태에서 다음과 같은 소스를 작성하였습니다.
#include <stdio.h> #include <wchar.h> int main(void) { char *estr="이거당.."; wprintf(L"str=%s \n", (wchar_t *)estr); return 0; }
make 하여 실행을 해보니
딸랑... "str=" 이것만 나오네요...
estr에 해당하는 EUC-KR문자열을 UTF-8문자열로
변환하기 위한 간단한 코드인데 감을 잡을 수가 없네요..
뭐가 문제일까요?
해당 터미널의 character-Set을 변경하여 실행해도 마찬가지 입니다.
Forums:
char *형을 wchar_t * 형으로 casting한다고 EUC-KR
char *형을 wchar_t * 형으로 casting한다고 EUC-KR이 UTF-8 문자열로 바뀌지 않습니다. -_-;;
이런 경우엔 iconv 라이브러리를 사용하세요.
음... 그런가요...wprintf가 뭔가 해줄거라 기대하고 있었는데
음... 그런가요...
wprintf가 뭔가 해줄거라 기대하고 있었는데... ^^
그럼 printf와의 차이점은 뭘까요?
방법은 다음과 같습니다.[code:1]$ cat mbstowc
방법은 다음과 같습니다.
@ 소스파일은 물론 euc-kr로 인코딩되어야 합니다.
글자 하나하나의 코드를 다 utf로 바꿔줘야죠.형변환은 형을 그렇
글자 하나하나의 코드를 다 utf로 바꿔줘야죠.
형변환은 형을 그렇게 강제로 바꿔 쓰겠다고 컴파일러에게 알려주는거지
실제로는 변환작업 하나도 안합니다.
Written By the Black Knight of Destruction
이 방법은 잘못된 것입니까?
곰곰히 생각해보니 이식성이 없는 방법이 아닐까 싶습니다. wchar를 잘 사용하지 않아 일단 동작은 하길래 올려봤는데, locale-dependent한 wchar_t 구현도 있다니 왠지 위 방식은 올바르지 않다는 생각이 드네요. 그냥 iconv를 쓰는게 정답으로 보입니다.
잘 아시는분 조언 부탁드리겠습니다.
댓글 달기