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.
(Bild: Shutterstock.com/calimedia)
- Dr. Holger Schwichtenberg
.NET arbeitet im Standard mit Zeichenketten in der Codierung UTF-16. In Webanwendungen wird aber oft noch UTF-8 benötigt.
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)