wprintf()는 왜 있는 건가요?
글쓴이: vudghkzm / 작성시간: 일, 2010/04/18 - 2:35오전
#include <stdio.h> #include <wchar.h> #include <locale.h> int main() { setlocale(LC_ALL, ""); printf("%ls", L"테스트"); return 0; }
#include <stdio.h> #include <wchar.h> #include <locale.h> int main() { setlocale(LC_ALL, ""); wprintf(L"%ls", L"테스트"); return 0; }
시스템 로케일은 en_US.UTF-8으로 설정되어 있습니다.
코드 파일의 인코딩은 utf-8이고, 둘다 gcc를 사용해서 컴파일 한 후, 터미널에서 실행했습니다.
둘다 터미널에 올바로 '테스트' 라는 한글을 출력합니다.
그렇다면... 왜 printf(), wprintf() 이렇게 따로 따로 만든 이유는 뭔가요?
printf()에서도 %ls를 사용하면 wchar_t* 타입을 사용할 수 있는데 말이죠.
Forums:
"%ls"가 들어가는
"%ls"가 들어가는 문자열이 wide character 문자열인 경우가 문제가 됩니다.
여기서 utf-8은 wide-character가 아닙니다. utf-8은 unicode를 표현하는 8byte 인코딩입니다.
utf16, utf32따위가 wide character(1바이트보다 큰)가 되겠죠.
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
댓글 달기