تبدیل wstring به string و برعکس - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تبدیل wstring به string و برعکس

0 امتیاز
سلام. می خواستم wstring را به string و بالکعس تبدیل کنم؟
سوال شده بهمن 2, 1392  بوسیله ی __arash__ (امتیاز 36)   3 5 8

3 پاسخ

+5 امتیاز
 
بهترین پاسخ

برای تبدیل wstring به string به صورت زیر عمل نمایید.

std::wstring uniString(L"A unicode String");
std::string simpleString;

// Convert one to the other:
simpleString.assign(uniString.begin(), uniString.end());

 

برای تبدیل string به wstring به صورت زیر عمل نمایید.

std::string simpleString(L"A single byte String");

std::wstring unitString;

// Convert one to the other:
uniString.assign(simpleString.begin(), simpleString.end());

 

 

پاسخ داده شده بهمن 2, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد بهمن 6, 1392 بوسیله ی __arash__
+3 امتیاز

تو c++11 از این روش هم می تونید استفاده کنید.

#include <codecvt>
	wstring s2ws(const std::string& str)
	{
		typedef std::codecvt_utf8<wchar_t> convert_typeX;
		std::wstring_convert<convert_typeX, wchar_t> converterX;

		return converterX.from_bytes(str);
	}

	string ws2s(const std::wstring& wstr)
	{
		typedef std::codecvt_utf8<wchar_t> convert_typeX;
		std::wstring_convert<convert_typeX, wchar_t> converterX;

		return converterX.to_bytes(wstr);
	}

 

پاسخ داده شده شهریور 20, 1394 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
+1 امتیاز
inline const std::string wStringtoMBCSstringChar(const std::wstring& wstr) {
    std::wstring_convert<std::codecvt_utf8<wchar_t>> wstring_decoder;
    return wstring_decoder.to_bytes(wstr);
}


inline const std::wstring multiByteCharToWString(const char* str) {
    std::wstring_convert<std::codecvt_utf8<wchar_t>> wstring_encoder;
    std::wstring result = wstring_encoder.from_bytes(str);
    return result;
}

 

پاسخ داده شده مرداد 24, 1399 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
...