◐ Shell
clean mode source ↗

std::codecvt_utf8 – cppreference.com

Aus cppreference.com

<metanoindex/>

<tbody> </tbody>

definiert in Header

<codecvt>

template< class Elem, unsigned long Maxcode = 0x10ffff, std::codecvt_mode Mode = (std::codecvt_mode)0 > class codecvt_utf8 : public std::codecvt<Elem, char, std::mbstate_t>;

std::codecvt_utf8 ist ein std::codecvt Facette, die Konvertierung zwischen einer UTF-8-codierte Bytefolge und UCS2 oder UCS4 Zeichenkette (abhängig von der Art der Elem) kapselt. Diese codecvt Facette kann verwendet werden, um lesen und schreiben UTF-8-Dateien, sowohl Text und binäre werden .

Original:

std::codecvt_utf8 is a std::codecvt facet which encapsulates conversion between a UTF-8 encoded byte string and UCS2 or UCS4 character string (depending on the type of Elem). This codecvt facet can be used to read and write UTF-8 files, both text and binary.

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Template-Parameter

Elem -

entweder char16_t, char32_t oder wchar_t

Original:

either char16_t, char32_t, or wchar_t

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Maxcode -

der größte Wert von Elem daß diese Facette liest oder ohne Fehler zu schreiben

Original:

the largest value of Elem that this facet will read or write without error

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Mode -

eine Konstante vom Typ std::codecvt_mode

Original:

a constant of type std::codecvt_mode

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Inherited from std::codecvt

Member types

Mitglied Typ

Original:

Member type

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Definition
intern_type internT
extern_type externT
state_type stateT

Member objects

Member name

Original:

Member name

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Type
id (statisch) std::locale::id

Member functions

Beruft do_out

Original:

invokes do_out

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(öffentliche Elementfunktion of std::codecvt) [edit]

Beruft do_in

Original:

invokes do_in

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(öffentliche Elementfunktion of std::codecvt) [edit]

Beruft do_unshift

Original:

invokes do_unshift

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(öffentliche Elementfunktion of std::codecvt) [edit]

Beruft do_encoding

Original:

invokes do_encoding

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(öffentliche Elementfunktion of std::codecvt) [edit]

Beruft do_always_noconv

Original:

invokes do_always_noconv

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(öffentliche Elementfunktion of std::codecvt) [edit]

Beruft do_length

Original:

invokes do_length

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(öffentliche Elementfunktion of std::codecvt) [edit]

Beruft do_max_length

Original:

invokes do_max_length

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(öffentliche Elementfunktion of std::codecvt) [edit]

Protected member functions

[virtuell]

wandelt eine Zeichenkette aus Internt zu externT, wie beim Schreiben in eine Datei

Original:

converts a string from internT to externT, such as when writing to file

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(virtuellen geschützten Member-Funktion of std::codecvt) [edit]

[virtuell]

wandelt eine Zeichenkette aus externT um Internt wie beim Lesen aus Datei

Original:

converts a string from externT to internT, such as when reading from file

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(virtuellen geschützten Member-Funktion of std::codecvt) [edit]

[virtuell]

generiert die Beendigung Ziffernfolge externT Zeichen für unvollständige Umsetzung

Original:

generates the termination character sequence of externT characters for incomplete conversion

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(virtuellen geschützten Member-Funktion of std::codecvt) [edit]

[virtuell]

gibt die Anzahl der externT Zeichen notwendig, um ein Internt Charakter zu produzieren, wenn konstant

Original:

returns the number of externT characters necessary to produce one internT character, if constant

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(virtuellen geschützten Member-Funktion of std::codecvt) [edit]

testet, ob der Facette kodiert eine Identität Konvertierung für alle gültiges Argument Werte

Original:

tests if the facet encodes an identity conversion for all valid argument values

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(virtuellen geschützten Member-Funktion of std::codecvt) [edit]

[virtuell]

berechnet die Länge der Zeichenfolge, externT durch Umwandlung in gegebenen Internt Puffer verbraucht würde

Original:

calculates the length of the externT string that would be consumed by conversion into given internT buffer

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(virtuellen geschützten Member-Funktion of std::codecvt) [edit]

[virtuell]

gibt die maximale Anzahl von externT Zeichen, die in einem einzigen Internt Zeichen umgewandelt werden konnte

Original:

returns the maximum number of externT characters that could be converted into a single internT character

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(virtuellen geschützten Member-Funktion of std::codecvt) [edit]

Inherited from std::codecvt_base

Mitglied Typ

Original:

Member type

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Definition
enum result { ok, partial, error, noconv };

Ohne Bereichseinschränkung Aufzählungstyp

Original:

Unscoped enumeration type

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Enumeration konstant

Original:

Enumeration constant

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Definition
ok

Umwandlung wurde ohne Fehler beendet

Original:

conversion was completed with no error

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

partial

nicht alle Quellzeichen umgewandelt wurden

Original:

not all source characters were converted

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

error

hat eine ungültige Zeichen

Original:

encountered an invalid character

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

noconv

kein Umbau erforderlich, Eingabe und Ausgabe-Typen sind die gleichen

Original:

no conversion required, input and output types are the same

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Beispiel

Das folgende Beispiel demonstriert den Unterschied zwischen UCS2/UTF-8 und UTF-16/UTF-8 Konvertierungen: das dritte Zeichen in der Zeichenfolge ist keine gültige UCS2 Charakter .

Original:

The following example demonstrates the difference between UCS2/UTF-8 and UTF-16/UTF-8 conversions: the third character in the string is not a valid UCS2 character.

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

#include <iostream>
#include <string>
#include <locale>
#include <codecvt>
int main()
{
    // UTF-8 data. The character U+1d10b, musical sign segno, does not fit in UCS2
    std::string utf8 = u8"z\u6c34\U0001d10b";

    // the UTF-8 / UTF-16 standard conversion facet
    std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> utf16conv;
    std::u16string utf16 = utf16conv.from_bytes(utf8);
    std::cout << "UTF16 conversion produced " << utf16.size() << " code points:\n";
    for(char16_t c : utf16)
        std::cout << std::hex << std::showbase << c << '\n';

    // the UTF-8 / UCS2 standard conversion facet
    std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> ucs2conv;
    try {
        std::u16string ucs2 = ucs2conv.from_bytes(utf8);
    } catch(const std::range_error& e) {
        std::u16string ucs2 = ucs2conv.from_bytes(utf8.substr(0, ucs2conv.converted()));
        std::cout << "UCS2 failed after producing " << std::dec << ucs2.size()<<" characters:\n";
        for(char16_t c : ucs2)
            std::cout << std::hex << std::showbase << c << '\n';
    }
}

Output:

UTF16 conversion produced 4 code points:
0x7a
0x6c34
0xd834
0xdd0b
UCS2 failed after producing 2 characters:
0x7a
0x6c34

Siehe auch

Character
conversions
narrow multibyte
(char)
UTF-8
(char)
UTF-16
(char16_t)
UTF-16 mbrtoc16 / c16rtomb codecvt<char16_t, char, mbstate_t>
codecvt_utf8_utf16<char16_t>
codecvt_utf8_utf16<char32_t>
codecvt_utf8_utf16<wchar_t>
N/A
UCS2 No codecvt_utf8<char16_t> codecvt_utf16<char16_t>
UTF-32/UCS4
(char32_t)
mbrtoc32 / c32rtomb codecvt<char32_t, char, mbstate_t>
codecvt_utf8<char32_t>
codecvt_utf16<char32_t>
UCS2/UCS4
(wchar_t)
No codecvt_utf8<wchar_t> codecvt_utf16<wchar_t>
wide
(wchar_t)
codecvt<wchar_t, char, mbstate_t>
mbsrtowcs / wcsrtombs
No No

Konvertiten zwischen Zeichenkodierungen, inklusive UTF-8, UTF-16, UTF-32

Original:

converts between character encodings, including UTF-8, UTF-16, UTF-32

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(Klassen-Template) [edit]

Tags zu ändern, das Verhalten der Standard-codecvt Facetten

Original:

tags to alter behavior of the standard codecvt facets

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(Klasse) [edit]

konvertiert zwischen UTF-16 und UCS2/UCS4

Original:

converts between UTF-16 and UCS2/UCS4

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(Klassen-Template) [edit]
converts between UTF-8 and UTF-16
(Klassen-Template) [edit]