Unicode-Codierung in C 11-String-Literalen
C 11 führte neue Zeichentypen und String-Literale ein, um die Unicode-Codierung zu erleichtern. Dieser Artikel untersucht die Verwendung und Semantik dieser neuen Funktionen und geht dabei auf die folgenden Fragen ein:
Zeichenreferenzen und Zeichenfolgentypen
Sind „x/“ u/U"-Zeichenreferenzen, die mit allen Zeichenfolgen kombinierbar sind Typen?
Antwort: Nein. „x“ kann in allen Zeichenfolgen verwendet werden, während „u“ und „U“ auf UTF-codierte Zeichenfolgen beschränkt sind.
Feste Breite Strings
Haben String-Typen eine feste Breite oder erhöhen „x/u/U“-Referenzen die Anzahl der Bytes?
Antwort: Während die Anzahl der Codeeinheiten in einem String von der Kodierung abhängt, bleibt die Anzahl der Elemente im Array bestehen behoben.
UTF-Codierungssemantik für „u““- und „u8““-Strings
Do „u Die Zeichenfolgen „“ und „u8““ verfügen über eine Codierungssemantik, die die Codierung von Nicht-BMP-Code ermöglicht Punkte?
Antwort: Ja, „u““ erstellt UTF-16-codierte Zeichenfolgen, während „u8““ UTF-8-codierte Zeichenfolgen erstellt. Nicht-BMP-Codepunkte werden entsprechend codiert.
Verwendung von Lone Surrogates mit „u“
Kann lone Surrogate werden mit geschrieben „u“?
Antwort: Nein, die Spezifikation verbietet die Verwendung von UTF-16-Ersatzpaaren (0xD800-0xDFFF) als Codepunkte für „u“ oder „U“.
Bewusstsein in String kodieren Funktionen
Sind String-Funktionen kodierungsbewusst?
Antwort: Nein, die Standard-String-Funktionen sind nicht kodierungsbewusst und berücksichtigen Unicode-Strings als Folgen von Codeeinheiten, nicht als Codepunkte. Sie können ungültige Bytesequenzen nicht erkennen.
Fazit
Diese Untersuchung der Unicode-Codierung in C 11-String-Literalen bietet einen umfassenden Überblick über das neue Zeichen Typen, String-Literale und ihre Codierungssemantik. Es verdeutlicht deren Verwendung und Einschränkungen und ermöglicht Entwicklern die effektive Nutzung der Unicode-Unterstützung in C 11.
Das obige ist der detaillierte Inhalt vonWie gehen C 11-String-Literale mit der Unicode-Codierung um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!