std::wstring_convert<Codecvt,Elem,Wide_alloc,Byte_alloc>:: from_bytes
|
Definiert im Header
<locale>
|
||
|
wide_string from_bytes
(
char
byte
)
;
|
(1) | |
|
wide_string from_bytes
(
const
char
*
ptr
)
;
|
(2) | |
|
wide_string from_bytes
(
const
byte_string
&
str
)
;
|
(3) | |
|
wide_string from_bytes
(
const
char
*
first,
const
char
*
last
)
;
|
(4) | |
Konvertiert eine Bytefolge in eine Breitzeichen-Zeichenkette unter Verwendung des Facet, auf das
cvtptr
zeigt.
[
first
,
last
)
.
Bevor die Konvertierung beginnt, falls
*
this
nicht
mit Konstruktorüberladung
(3)
erstellt wurde,
wird
cvtstate
auf seinen Standardwert (den anfänglichen Konvertierungszustand) gesetzt.
Die Anzahl der erfolgreich konvertierten Eingabeelemente wird in
cvtcount
gespeichert.
Inhaltsverzeichnis |
Rückgabewert
Wenn die Konvertierung erfolgreich ist, gibt sie das Konvertierungsergebnis zurück. Andernfalls, wenn
*
this
mit Konstruktor-Überladung
(4)
konstruiert wurde, gibt sie
wide_err_string
zurück.
Ausnahmen
Wenn die Konvertierung fehlschlägt und * this nicht mit Konstruktor-Überladung (4) erstellt wurde, wird std::range_error geworfen.
Beispiel
#include <codecvt> #include <cstdint> #include <iostream> #include <locale> #include <string> int main() { std::string utf8 = "z\u00df\u6c34\U0001d10b"; // oder u8"zß水𝄋" // oder "\x7a\xc3\x9f\xe6\xb0\xb4\xf0\x9d\x84\x8b"; // der UTF-8 / UTF-16 Standardkonvertierungs-Facet std::u16string utf16 = std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t>{}.from_bytes(utf8.data()); std::cout << "UTF-16-Konvertierung erzeugte " << utf16.size() << " Code-Einheiten: " << std::showbase; for (char16_t c : utf16) std::cout << std::hex << static_cast<std::uint16_t>(c) << ' '; // der UTF-8 / UTF-32 Standardkonvertierungs-Facet std::u32string utf32 = std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t>{}.from_bytes(utf8); std::cout << "\nUTF-32-Konvertierung erzeugte " << std::dec << utf32.size() << " Code-Einheiten: "; for (char32_t c : utf32) std::cout << std::hex << static_cast<std::uint32_t>(c) << ' '; std::cout << '\n'; }
Ausgabe:
UTF-16 conversion produced 5 code units: 0x7a 0xdf 0x6c34 0xd834 0xdd0b UTF-32 conversion produced 4 code units: 0x7a 0xdf 0x6c34 0x1d10b
Siehe auch
|
wandelt eine Breitzeichen-Zeichenkette in eine Byte-Zeichenkette um
(öffentliche Elementfunktion) |
|
|
wandelt eine schmale Multibyte-Zeichenkette in eine Breitzeichen-Zeichenkette um, mit Zustand
(Funktion) |
|
|
[virtual]
|
wandelt eine Zeichenkette von
ExternT
zu
InternT
um, z.B. beim Lesen aus einer Datei
(virtuelle geschützte Elementfunktion von
std::codecvt<InternT,ExternT,StateT>
)
|