C wstring (veya wchar_t* dizge (ya da char*) Dönüştürmek
string s = "おはよう";
wstring ws = FUNCTION(s, ws);
Nasıl s içeriğini ws atamak istiyorsunuz?
Google Arama yaptı ve bazı teknikler kullanılır ama tam içeriği atayabilirsiniz. İçeriği bozuk.
CEVAP
Farz giriş dizesi içinde örnek (おはよう) bir UTF-8 kodlanmış (yani öyle değil mi, görünüyor, ama farz edelim o iyiliği için bu açıklamayı :-)) temsili bir Unicode dize ilginiz, o zaman sorun olabilir tam olarak çözüldü ile standart kütüphane (C 11 ve daha yeni) tek başına.
TL;DR versiyonu:
#include <locale>
#include <codecvt>
#include <string>
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
std::string narrow = converter.to_bytes(wide_utf16_source_string);
std::wstring wide = converter.from_bytes(narrow_utf8_source_string);
Artık online derlenebilir ve çalıştırılabilir örnek:
- http://coliru.stacked-crooked.com/a/b9324a6c8dcf830c (?)
- kopyalama ve yapıştırma http://webcompiler.cloudapp.net/ önceki bağlantı (msvc) kodu
Not:
Belirttiği gibi açıklamalarda ve açıkladı http://stackoverflow.com/a/17106065/6345 orada durumlar kullanırken standart kütüphane dönüştürmek arasında UTF-8 ve UTF-16 diye ver beklenmedik farklar sonuçlar farklı platformlar. Daha iyi bir dönüşüm için, http://en.cppreference.com/w/cpp/locale/codecvt_utf8 açıklanan std::codecvt_utf8
düşünün
JSON dize veya dize JSON XML dönüştürm...
Nasıl char int dönüştürmek için?...
En iyi yolu Dizisi için IList, IEnumer...
Nasıl dize içine wstring dönüştürmek i...
Java ile nasıl bir char veya String bi...