본문 바로가기
프로그래밍/C·C++

리눅스 로케일 세팅

by ITPro 2010. 8. 11.
원문 http://kldp.org/node/59797



gcc aa.c -o aa -lncursesw 

쉘에서의 로케일과 프로그램의 로케일이 다르기 때문에,
프로그램 안에서도 로케일을 세팅해 줘야 한글이 제대로 나오게 됩니다.

또, 라이브러리의 차이점은

  ncursesw -> utf8, euckr 둘다 지원
  ncurses -> euckr 지원

wchar를 지원해주고 않해주고의 차이입니다.
따라서 ncursesw 는 utf8이 지원이 되고, ncurses는 utf8이 지원이 않되는 것입니다.

따라서 코딩은 다음과 같이 해주면 해결이 될것입니다.
getenv("LANG" )으로 쓰시면 편할것으로 예상됩니다.

ko_KR.utf8 로 하시면 utf8로 나올것이고,
ko_KR.eucKR 로 하시면 euckr로 나올것입니다.

또, LC_ALL, LC_CTYPE 둘 중아무것이나 쓰셔도 한글 출력에는 지장이 없습니다.
하지만 LC_ALL 이 더 좋을 것입니다.

 

 

 

#include <locale.h>
#include <ncurses.h>

int main()
{
        setlocale(LC_ALL, "ko_KR.utf8");
        setlocale(LC_CTYPE, "ko_KR.utf8");

        initscr();
        printw("hello world!!!");
        printw("헬로우~!!!");
        refresh();
        getch();
        endwin();

        return 0;
}
반응형

'프로그래밍 > C·C++' 카테고리의 다른 글

gcc mysql.h 컴파일  (0) 2010.08.11
ncurses 프로그래밍  (0) 2010.08.11
리눅스 curses.h 설명  (0) 2010.08.11
리눅스 curses.h 사용 예  (0) 2010.08.11
전역변수&extern  (0) 2010.08.11