문자집합, 인코딩 문제좀 도와주세요
글쓴이: vivisection / 작성시간: 일, 2016/03/20 - 6:16오후
windows용 gcc로 작업중입니다
소스파일 인코딩 - utf-8
#define UNICODE
MessageBoxA(hMainWnd, "한글깨짐", "한글깨짐", MB_OK);
SetWindowTextW(hMainWnd, L"한글잘됨);
위에껀 한글이 깨지고 아래껀 한글이 잘나옵니다
소스파일 인코딩 - euc-kr
#define UNICODE
MessageBoxA(hMainWnd, "한글잘됨", "한글잘됨", MB_OK);
SetWindowTextW(hMainWnd, L"컴파일에러");
에러내용은
error: converting to execution character set: iLLegal byte sequence
물론 MultibyteToWidechar(), mbstowcs() 다 해봤습니다
한 프로그램안에서 euc-kr, utf-8, std::wstring 다 다뤄야 합니다
이거 어떻게 해야 해결되는지 아시는분 좀 도와주세요
Forums:
소스파일 인코딩 - utf-8 의
소스파일 인코딩 - utf-8 의 경우에,
대신에
로 하시면 되지 않나요?
SetWindowTextW 는 잘 되신다면요...
일단 답글 감사합니다
MessageBoxW(hMainWnd, L"한글잘될까", L"한글잘될까", MB_OK);
하면 잘 되긴 하지만, 저기만 그런게 아니라, 텍스트파일이나 소켓으로 euc-kr, utf-8등 문자열들을 불러오고 가공하고 해야합니다
일단 wchar_t로 변환부터하면 좀 편한데, 변환함수도 소스파일 인코딩에 따라 컴파일에러가 날때도 있고, 문자집합 변환관련 헤딩 10시간째입니다
컴파일러를 gcc 쓰시나 보군요.#include
컴파일러를 gcc 쓰시나 보군요.
이 코드는 인코딩이 utf-8 일 경우, gcc 에서는 "한글깨짐"은 깨지고 "한글잘됨L" 은 한글이 잘 됩니다.
(왜 utf-8 문자열이 ucs-2 문자열을 기대하는 함수에 들어가서 제대로 작동하는지는 의문입니다만...)
인코딩이 euc-kr 일 경우, gcc 에서는 컴파일 에러가 납니다.
그런데, 위 코드의 인코딩이 utf-8 이거나, euc-kr 이거나 관계 없이
msvc (cl.exe) 일 경우, "한글깨짐" 도 잘 나오고 "한글잘됨L" 도 한글이 잘 됩니다.
cl.exe 는 문자열 상수앞에 L 을 붙이면 컴파일러 매직이 있는것 같습니다.
msvc 진짜 눈물나게 쓰고 싶은데, atom cpu
msvc 진짜 눈물나게 쓰고 싶은데, atom cpu 달린 옛날 pc중에 vs2015재배포패키지 안깔리는 놈들이 간혹 있습니다.
타겟머신이 고물pc라서 mfc로 빨리할수 있는거 winapi로 눈물흘리면서 하고, 이제라도 wxwidgets 깔아야할것 같습니다
관심 고맙습니다
지난번 nana 는 포기하고 wx 로 가시는
지난번 nana 는 포기하고 wx 로 가시는 건가요?ㅠㅠ
nana건은 끝났습니다
잘 되긴 되는데.. 아직은 좀 멀은것 같습니다
해결했습니다 #define UNICODE //
해결했습니다
#define UNICODE // 이놈이 모든 문제의 원흉이였습니다
이놈빼니까 문자집합 변환 잘됩니다
소스파일 인코딩은 utf-8 이고, wide, ansi 함수들 동시에 잘 작동합니다
근데 이미 사용한 수백개의 wide 함수들이 오류를 뿜습니다
전부 ansi 버전으로 바꾸거나, 인자들 전부 변환해서 집어넣거나 해야하는데..
왜 지금 아무런 감정이 없을까요..
화가 나거나 그래야 할거 같은데....
되다가 다시 안되는군요..
관련부분 바꾼것도 없는데.. 테스트용 똑같은소스, 똑같은 실행파일.. 아까는 되다가 갑자기 또 안되는군요..
댓글 달기