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.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 5 Beiträge

(Bild: Shutterstock.com/calimedia)

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 Chief Technology Expert bei MAXIMAGO, die Innovations- und Experience-getriebener Softwareentwicklung, u.a. in hochkritischen sicherheitstechnischen Bereichen, anbietet. Zudem ist er Leiter des Expertennetzwerks www.IT-Visions.de, das mit 38 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratung und Schulung bei der Entwicklung sowie dem Betrieb von Software unterstützt.

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)