Laden...

UTF-8-Fehler auf Console?

Erstellt von mosspower vor 15 Jahren Letzter Beitrag vor 15 Jahren 667 Views
mosspower Themenstarter:in
456 Beiträge seit 2007
vor 15 Jahren
UTF-8-Fehler auf Console?

Hallo "Kollegen",

kann vielleicht einer mal den Code ausführen ...

String testValue = "]u:#\\_{]`0jAÖÇñG|e*Cv\\Ä6}v]*߀U}ñ]Ç-Ç?v`(@>Uvk9[=!`+.Gµ?[B]³[/B]~J[B]³[/B]T)n!B[}ö<q²)H";
Console.WriteLine(testValue);
Console.WriteLine(new UTF8Encoding().GetString(Encoding.UTF8.GetBytes(testValue)));

Bei mir zeigt der immer die hochgestellten 3er als die Zahl 3 an 8o ... wenn ich die in einem String habe 3 und hochgestellte 3, dann gibt der mir den Index der "normalen" 3 zurück, wenn die vor der hochgestellten 3 kommt. Was das denn? Bei den hochgestellten 2er passt es - sehr komisch.

R
234 Beiträge seit 2007
vor 15 Jahren

Also bei mir wird in beiden fällen das Selbe ausgegeben:


]u:#\_{]`0jAÖÇñG|e*Cv\Ä6}v]*ß?U}ñ]Ç-Ç?v`(@>Uvk9[=!`+.Gµ?[B]³[/B]~J[B]³[/B]T)n!B[
}ö<q²)H

3.971 Beiträge seit 2006
vor 15 Jahren

Console.WriteLine(new UTF8Encoding().GetString(Encoding.UTF8.GetBytes(testValue)));

So wie du das brauchst, ist es schwachsinn, das mit Byte ausgeben zu lassen.
Nur die ersten 127 Ansi-Zeichen (die auf jedem PC und Sprache/Region) gleich sind, können so korrekt ausgegeben werden. Alle Zeichen darüber werden mit 2 bis 4 Zeichen dargestellt. Verwende daher lieber String.ToCharArray() und gebe jedes Zeichen als Int32 aus.

Ansonsten schau mal, was du bei dir in der Console für ne Standard-Schriftart ausgewählt hast, eventuell ist diese nicht Unicode fähig.

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 15 Jahren

Also bei mir wird in beiden fällen das Selbe ausgegeben:

  
]u:#\_{]`0jAÖÇñG|e*Cv\Ä6}v]*ß?U}ñ]Ç-Ç?v`(@>Uvk9[=!`+.Gµ?[B]³[/B]~J[B]³[/B]T)n!B[  
}ö<q²)H  
  

Bei mir ja auch, nur das Zeichen der hochgestellten 3 wird als die Zahl 3 eingestellt.

@kleines_eichhoernchen,

wo kann man das denn einstellen?

Naja, die Problematik hat sich erledigt. Ich habe über eine Stunde nach einen Fehler gesucht, nur weil ich den String aus der Console kopiert habe - jetzt schreibe ich (gespeichert UTF-8) in eine Datei und kopiere das dann da raus, das funzzt.

3.971 Beiträge seit 2006
vor 15 Jahren

Rechte Maustaste auf das CMD-Icon oben Links im CMD-Fenster, Eigenschaften, Schriftart. Lucida Console stellt Unicode-Zeichen dar, leider aber nicht alle.

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...