Neu in .NET 7 [3]: UTF-8-Zeichenketten-Literale in C# 11

Die neue Version von Microsofts Programmiersprache kann aus Zeichenketten-Literalen Bytefolgen in UTF-8-Codes erstellen.

In Pocket speichern vorlesen Druckansicht 5 Kommentare lesen

(Bild: Shutterstock.com/calimedia)

Lesezeit: 1 Min.
Von
  • Dr. Holger Schwichtenberg

.NET arbeitet im Standard mit Zeichenketten in der Codierung UTF-16. In Webanwendungen wird aber oft noch UTF-8 benötigt.

Der Dotnet-Doktor – Holger Schwichtenberg

Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.

Neu in C# 11.0 sind UTF-8-Zeichenketten-Literale, mit denen man eine Zeichenkette angeben kann und eine Bytefolge von UTF-8-Codes in Form des Typs ReadOnlySpan<byte> erhält.

Die folgenden Beispiele zeigen "Hallo Holger!" in UTF-8-Zeichenketten-Literale:

ReadOnlySpan<byte> s1 = "Hallo Holger!"u8;
var s2 = "Hallo Holger!"u8;
var s3 = "Hallo Holger!"U8;
byte[] s4 = "Hallo Holger!"u8.ToArray();

Alle diese Syntaxvarianten erzeugen in C# 11.0 die folgende Bytefolge:

0x48 0x61 0x6C 0x6C 0x6F 0x20 0x48 0x6F 0x6C 0x67 0x65 0x72 0x21

UTF8-Zeichenketten können jedoch nicht mit String-Interpolation und in Standardwerten für Parameter verwendet werden.

(rme)