728x90
반응형
std::wstring s2ws(const std::string& str)
{
using convert_typeX = std::codecvt_utf8<wchar_t>;
std::wstring_convert<convert_typeX, wchar_t> converterX;
return converterX.from_bytes(str);
}
std::string ws2s(const std::wstring& wstr)
{
using convert_typeX = std::codecvt_utf8<wchar_t>;
std::wstring_convert<convert_typeX, wchar_t> converterX;
return converterX.to_bytes(wstr);
}
둘 다 가능하지만 치명적 이게도 한글은 깨진다.
4번 답변을 이용하면 한글에서도 가능하다.
std::string w2s(const std::wstring &var)
{
static std::locale loc("");
auto &facet = std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t>>(loc);
return std::wstring_convert<std::remove_reference<decltype(facet)>::type, wchar_t>(&facet).to_bytes(var);
}
std::wstring s2w(const std::string &var)
{
static std::locale loc("");
auto &facet = std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t>>(loc);
return std::wstring_convert<std::remove_reference<decltype(facet)>::type, wchar_t>(&facet).from_bytes(var);
}
잘된다.
728x90
반응형
'코드 > C++' 카테고리의 다른 글
libjpeg 사용하기 (0) | 2022.08.23 |
---|---|
[C++] 마우스 이벤트 후킹 (0) | 2022.05.11 |
[C++] XMLLite를 이용한 XML 파일 읽어오기 (0) | 2021.11.08 |
[C++] 3점을 지나는 외접원의 중심점 구하기 (0) | 2021.04.20 |
[C++] Char의 형 변환 (0) | 2021.04.20 |