물어볼데가 없어서 이렇게 글올립니다.. oops
말그대로 ncurses 로요...
printw("헬로우");
이렇게 출력하니 깨진 한글이 출력되더군요..
안깨지게 원판그대로 출력은 어떻게 하나요??
음..제가.....수준 떨어지는 질문을 하는거같네요..
답변 달리면 지워야겠어요......
한글은 컴파일할때 ncursesw로 링크해야 합니다.
-lncuresew
euckr 일경우 상관은 없지만, utf8일 경우 깨지게 됩니다. 이때 위의 ncursesw로 링크해야 합니다.
관련된것은 kldp.net의 Mls 프로젝트를 참조하세요. ^^
https://github.com/la9527
그래도 이상하게 깨지는군요..ㅡ.ㅡ;;
어떻게 된건지..
gcc test.c -lncursesw
이렇게 컴파일 했는데 여전히 깨지더라구요...
텍스트 편집기로 열어서 euckr 로 저장했거든요..
감비노도 궁금해하더라구..등짝!..등짝을보자!..
음.. utf8이면 ncursesw로 링크하고.. euckr이면 ncurses로 링크하면 된다는 말씀이 아닐까요..
ㅡ_ㅡ;
ncurces의 헤더파일이 좀 특이한데.. ncurces.h 가 ncurses용이 따로 있고, ncursesw용이 따로 있습니다. 파일이름은 같구요.
헤더파일이 틀리니 헤더파일도 올바른 곳으로 해줘야 할듯 싶네요. 보통 깔리면 /usr/include/ncursesw/ncurces.h 로 되겠네요. 아마 비교해 보시면 헤더파일이 약간 다를 것입니다.
배포판의 파일보기를 참조해보세요. 우분투나 데비안이면 dpkg -L ncuresew-dev 일듯 싶네요.
저기..그러니깐...무슨말씀이신지..-_-;;
이해을 못하겠습니다... oops
가르침을....
잊고 지내다가 요번에 갑자기 생각나서.. 또 찾아해매고 있는데요.. 왜 안되는건지 모르겠네요..
gcc -o t1 t1.c -lncursesw -I/usr/include/ncursesw -L/usr/include/ncursesw
이렇게 컴파일 했는데 여전히 한글이 깨지더군요 왜이런건가요? terminal >글자코딩도 바꿔봤는데 여전해 깨지고요.. file 로 확인해보니 utf8 이였습니다..
전 페도라4 을 쓰고 있습니다.
#include <ncurses.h> int main() { initscr(); printw("hello world!!!"); printw("헬로우~!!!"); refresh(); getch(); endwin(); return 0; }
늦었지만 이제야 댓글을 답니다. ^^;
쉘에서의 로케일과 프로그램의 로케일이 다르기 때문에, 프로그램 안에서도 로케일을 세팅해 줘야 한글이 제대로 나오게 됩니다.
또, 라이브러리의 차이점은
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; }
이 답변을 기다렸습니다..(1년동안 기다렸군요....) 아주 깔끔하게 한글이 나오는군요...:)
한글 utf-8이나 euc-kr 이런거 공부할려니 답답~~
1년!
잊지 않다니 대단한 기억력이라고 생각합니다. :)
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
한글은...
한글은 컴파일할때 ncursesw로 링크해야 합니다.
-lncuresew
euckr 일경우 상관은 없지만, utf8일 경우 깨지게 됩니다.
이때 위의 ncursesw로 링크해야 합니다.
관련된것은 kldp.net의 Mls 프로젝트를 참조하세요. ^^
https://github.com/la9527
답변감사합니다....근데요...
그래도 이상하게 깨지는군요..ㅡ.ㅡ;;
어떻게 된건지..
gcc test.c -lncursesw
이렇게 컴파일 했는데 여전히 깨지더라구요...
텍스트 편집기로 열어서 euckr 로 저장했거든요..
감비노도 궁금해하더라구..등짝!..등짝을보자!..
음.. utf8이면 ncursesw로 링크하고.. euckr이면 ncur
음.. utf8이면 ncursesw로 링크하고.. euckr이면 ncurses로 링크하면 된다는 말씀이 아닐까요..
ㅡ_ㅡ;
ncurces의 헤더파일이 좀 특이한데..ncurces.h 가 ncu
ncurces의 헤더파일이 좀 특이한데..
ncurces.h 가 ncurses용이 따로 있고, ncursesw용이 따로 있습니다.
파일이름은 같구요.
헤더파일이 틀리니 헤더파일도 올바른 곳으로 해줘야 할듯 싶네요.
보통 깔리면 /usr/include/ncursesw/ncurces.h 로 되겠네요.
아마 비교해 보시면 헤더파일이 약간 다를 것입니다.
배포판의 파일보기를 참조해보세요.
우분투나 데비안이면 dpkg -L ncuresew-dev 일듯 싶네요.
저기.....
저기..그러니깐...무슨말씀이신지..-_-;;
이해을 못하겠습니다... oops
가르침을....
감비노도 궁금해하더라구..등짝!..등짝을보자!..
한참 잊고 지내다가 다시한번 질문드립니다..
잊고 지내다가 요번에 갑자기 생각나서..
또 찾아해매고 있는데요..
왜 안되는건지 모르겠네요..
이렇게 컴파일 했는데 여전히 한글이 깨지더군요 왜이런건가요?
terminal >글자코딩도 바꿔봤는데 여전해 깨지고요..
file 로 확인해보니 utf8 이였습니다..
전 페도라4 을 쓰고 있습니다.
감비노도 궁금해하더라구..등짝!..등짝을보자!..
감비노도 궁금해하더라구..등짝!..등짝을보자!..
지금 댓글을 답니다. ^^;
늦었지만 이제야 댓글을 답니다. ^^;
쉘에서의 로케일과 프로그램의 로케일이 다르기 때문에,
프로그램 안에서도 로케일을 세팅해 줘야 한글이 제대로 나오게 됩니다.
또, 라이브러리의 차이점은
wchar를 지원해주고 않해주고의 차이입니다.
따라서 ncursesw 는 utf8이 지원이 되고, ncurses는 utf8이 지원이 않되는 것입니다.
따라서 코딩은 다음과 같이 해주면 해결이 될것입니다.
getenv("LANG" )으로 쓰시면 편할것으로 예상됩니다.
ko_KR.utf8 로 하시면 utf8로 나올것이고,
ko_KR.eucKR 로 하시면 euckr로 나올것입니다.
또, LC_ALL, LC_CTYPE 둘 중아무것이나 쓰셔도 한글 출력에는 지장이 없습니다.
하지만 LC_ALL 이 더 좋을 것입니다.
https://github.com/la9527
답변 감사합니다..
이 답변을 기다렸습니다..(1년동안 기다렸군요....)
아주 깔끔하게 한글이 나오는군요...:)
감비노도 궁금해하더라구..등짝!..등짝을보자!..
감비노도 궁금해하더라구..등짝!..등짝을보자!..
페도라 한글 문제 너무 골치아퍼요 ㅜ.ㅜ
한글 utf-8이나 euc-kr 이런거 공부할려니 답답~~
1년! 잊지 않다니
1년!
잊지 않다니 대단한 기억력이라고 생각합니다. :)
댓글 달기