Heim > Backend-Entwicklung > C++ > Wie gehen C 11-String-Literale mit unterschiedlichen Unicode-Codierungen um?

Wie gehen C 11-String-Literale mit unterschiedlichen Unicode-Codierungen um?

Barbara Streisand
Freigeben: 2024-12-15 00:06:11
Original
734 Leute haben es durchsucht

How Do C  11 String Literals Handle Different Unicode Encodings?

Unicode-Codierung für String-Literale in C 11

Die Einführung neuer Zeichen- und String-Literaltypen in C 11 hat die Fähigkeiten der Sprache erweitert Umgang mit Unicode-Kodierungen. Während es mittlerweile vier Zeichentypen (char, wchar_t, char16_t, char32_t) und fünf String-Literal-Typen gibt, gelten für das Verhalten und die Kompatibilität dieser Zeichen und Strings mit Kodierungsmechanismen bestimmte Regeln.

Kodierungskompatibilität

Die x-Zeichenreferenz kann mit allen Zeichenfolgentypen verwendet werden und ermöglicht die Einbeziehung von Zeichenwerten, die in dargestellt werden hexadezimal. Allerdings sind u- und U-Referenzen auf Zeichenfolgen mit UTF-codierter Semantik beschränkt. Zeichenreferenzen werden basierend auf der Codierung der enthaltenen Zeichenfolge konvertiert.

Stringlänge und Codierung

Obwohl die Anzahl der in einer Zeichenfolge enthaltenen Unicode-Codeeinheiten je nach variieren kann Bei der Codierung haben die Arrays, die String-Literale darstellen, eine feste Breite, wobei jedes Element eine einzelne Codeeinheit darstellt. Die Anzahl der verwendeten Codeeinheiten wird durch die Unicode-Kodierung der Zeichenfolge bestimmt.

UTF-Kodierungssemantik

u""-Zeichenfolgenliterale sind speziell UTF-16-kodiert. während u8""-String-Literale in UTF-8 codiert sind. UTF-16-Codierungen verwenden char16_t-Codeeinheiten, während UTF-8-Codierungen Bytesequenzen variabler Länge zur Darstellung von Codepunkten verwenden.

Einzelne Surrogate

Einzelne Surrogate (0xD800- 0xDFFF) sind als Codepunkte in u-Sequenzen nicht zulässig. Zur Darstellung von Unicode-Zeichen in diesem Bereich müssen UTF-16-Ersatzzeichenpaare verwendet werden.

Codierungsbewusstsein

Standardfunktionen zur String-Manipulation verarbeiten die Unicode-Codierungssemantik nicht von Natur aus und behandeln UTF nicht -codierte Zeichenfolgen als Folge einzelner Codeeinheiten. Eingabe- und Ausgabeströme über Gebietsschemas ermöglichen jedoch das Lesen und Schreiben von Unicode-codierten Werten mit ordnungsgemäßer Kontextualisierung.

Das obige ist der detaillierte Inhalt vonWie gehen C 11-String-Literale mit unterschiedlichen Unicode-Codierungen um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage