Zeichencodierung

9

Für dieses Stück Code:

%Vor%

Ich gebe 'Ol'? anstelle von 'Olá'

Was ist daran falsch?

    
RedEagle 17.05.2011, 11:47
quelle

3 Antworten

1

Sind Sie sicher, dass der Stream tatsächlich utf-8-codiert ist? Versuchen Sie, die Rohbytes im Puffer vor dem Codieren zu überprüfen (es sollte 4 sein) und sehen Sie, was die tatsächlichen Bytewerte sind.

    
JacquesB 17.05.2011, 11:51
quelle
4

Wahrscheinlich ist es die falsche Kodierung.

Aber wenn Sie diesen Code verwenden, um Blöcke von Bytes (geteilt durch ein Protokoll) zu empfangen, haben Sie einen schwerwiegenden Fehler: Es gibt keine Garantie, dass der Block unabhängig codiert wurde.

Einfacher Fall: Die Grenze von 2 Blöcken durchschneidet ein Multi-Byte-codiertes Zeichen.

Beste Lösung: Hängen Sie einen TextReader an Ihren Stream an.

    
Henk Holterman 17.05.2011 12:03
quelle
-1

Geben Sie das Ergebnis in etwas aus, das "komplexe" Codierung versteht?

    
CodingBarfield 17.05.2011 12:23
quelle

Tags und Links