1175 Stimmen

Wie konvertiert man UTF-8 byte[] in string

J'ai un byte[] Array, das aus einer Datei geladen wird, von der ich zufällig weiß, dass sie UTF-8 .

In einigen Debugging-Codes muss ich sie in eine Zeichenkette umwandeln. Gibt es einen Einzeiler, der dies tut?

Unter der Haube sollte es nur eine Zuweisung und eine memcopy Auch wenn es nicht umgesetzt wird, sollte es also möglich sein.

7 Stimmen

"sollte nur eine Zuweisung und eine Speicherkopie sein": ist nicht korrekt, da eine .NET-Zeichenkette UTF-16 kodiert ist. Ein Unicode-Zeichen kann eine UTF-8-Code-Einheit oder eine UTF-16-Code-Einheit sein. Ein anderes kann zwei UTF-8-Code-Einheiten oder eine UTF-16-Code-Einheit sein, ein anderes kann drei UTF-8-Code-Einheiten oder eine UTF-16-Code-Einheit sein, ein anderes kann vier UTF-8-Code-Einheiten oder zwei UTF-16-Code-Einheiten sein. Eine Memkopie könnte zwar erweitert werden, aber sie wäre nicht in der Lage, die Konvertierung von UTF-8 nach UTF-16 zu bewältigen.

-3voto

S.ATTA.M Punkte 315
string result = ASCIIEncoding.UTF8.GetString(byteArray);

3 Stimmen

GetString ist eine statische Eigenschaft Encoding Klasse (von denen whi ASCIIEncoding ist ein abgeleiteter Typ Encoding.UTF8.GetString die bereits Von revi

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X