웬디의 기묘한 이야기

글 작성자: WENDYS
반응형

convert string to wstring

유니코드 환경과 멀티바이 환경이 함께 동작하는 윈도우 환경에선 사용하는 경우에 따라 멀티바이트 스트링을 사용하기도 하고, 유니코드 스트링을 사용하기도 합니다.

이 때, std::string 을 이용하여 아주 간단하게 상호 변환이 가능합니다.


그냥 넣으면 안되나요??

네 안됩니다... 아래와 같이 에러가 납니다


그래서 아래와같은 정상적인 방법을 이용하여 컨버팅을 할 수 있습니다.

멀티바이트 -> 유니코드


{
    std::string message_a = "convert before message";
    std::wstring message_w;

    message_w.assign(message_a.begin(), message_a.end());
    wprintf(message_w.c_str());
}

유니코드 -> 멀티바이트


{
    std::wstring message_w = L"convert before message";
    std::string message_a;
    
    message_a.assign(message_w.begin(), message_w.end());
    printf(message_a.c_str());
}


한글, 유니코드 문자열등을 지원하기 위해선 다음 페이지를 참고해주세요

https://wendys.tistory.com/84

 

[C/C++] convert string, wstring, utf-8

convert ansi string to unicode string and utf-8 string c/c++에서 ansi string과 unicode string, utf-8 string을 상호 변환하기 위해서는 간단한 대입으로는 불가능합니다. 예전에 소개해드렸던 std::string.a..

wendys.tistory.com

아주 간단하죠?


assign 이란 대입이라는 의미이며 std::string message = "assign message"와 동일한 기능입니다.




반응형