char to wchar_t 질문있습니다.
글쓴이: ozon1000 / 작성시간: 화, 2017/01/10 - 7:21오후
어쩌다보니 영어가 아닌 유니코드 즉 한글을 다루게 되었는데요..
만약 변수 char a = 'ㄱ'; 이렇게 가지고 있고,
wchar_t 변수로 변환하는 함수가 있을까요? os는 ubuntu 입니다.
질문이 좀 이상한가요..
정리하자면 만약에 char 변수가 한글 자음 혹은 모음을 가지고 있을 때
컴퓨터가 유니코드를 인식할 수 있는 wchar_t 변수로 변환하는 함수가 있을까요?
읽어주셔서 감사합니다.
내용을 조금 추가하겠습니다.
목적은 이렇습니다.
만약에 'ㄱ' 이라는 문자가 들어오면 이것은 특정 int값 예를들어 130 이라고 표현하고 싶습니다.
'ㄴ'이 들어오면 131이 되겠네요.
일반 char 변수는 예를들어 'a'라는 값이 입력되면 이것이 ASCII 코드로 자동으로 표현되는데
유니코드는 이렇지 않고 또한 wchar_t 변수 자체가 앞에 L이라는 키워드와 함께 사용되어야 하기 때문에 어려움을 겪고 있습니다. (wchar_t a = L'ㄱ';) 이렇게요.
보통 이럴때는 어떻게 처리하시는지요...
Forums:
char a = 'ㄱ'; 가 에러 아닌가요?
char a = 'ㄱ';
가 에러 아닌가요?
세벌 https://sebuls.blogspot.kr/
음...
딱 에러다 아니다 말은 못하겠네요!
visual studio에서는 에러는 안나지만 데이터가 중간에 짤리죠.
std::wstring s2ws(const std:
std::wstring s2ws(const std::string& s) {
std::string curLocale = setlocale(LC_ALL, "");
const char* _Source = s.c_str();
size_t _Dsize = mbstowcs(NULL, _Source, 0) + 1;
wchar_t *_Dest = new wchar_t[_Dsize];
wmemset(_Dest, 0, _Dsize);
mbstowcs(_Dest,_Source,_Dsize);
std::wstring result = _Dest;
delete []_Dest;
setlocale(LC_ALL, curLocale.c_str());
return result;
}
댓글 달기