Convertierungs Problem

CrimeTime89

Mitglied
Hallo,
ich habe das Problem das ich in einigen Daten Strings umlaute habe, und wenn diese dann verglichen werden sollen kann das Wort nicht gefunden werden weil es halt anders geschrieben ist hier ein Beispiel "Kirschblüte", ich habe nun die Funktion die die Daten Ausliest so geändert:

Code:
        public string Name
        {
           get { return Reader.ReadASCIIString(Wort); }
        }

Meine Frage:
wie kann ich dies so machen das es Statt Kirschblüte, Kirschblüte zurück gibt?
 
Diese Funktion besitzt meine *.dll leider nicht, ist es nicht möglich das return zu Convertieren mit Hilfe von Encoding.ASCII.GetString(return)?
 
Hi.

Du müßtest erstmal feststellen welches Encoding in der Quelle verwendet wird.

Da der Umlaut durch 2 Zeichen in ASCII kodiert ist und die anderen Buchstaben nicht, handelt es sich offenbar um ein Multi-Byte-Encoding, evtl. UTF-8?

Dann müßtest du von dem Reader eben auch in dem entsprechenden Encoding einlesen.

Gruß
 
Danke für den Tipp, aber so wie ich es Versuche klappt es nicht

hier der Versuch:
Code:
        public string Name
        {
get { return Encoding.UTF8.GetString(Reader.ReadASCIIString(Wort)); }
        }

Fehlermeldung:
Argument 1: cannot convert from 'string' to 'byte[]
 
leider beinhaltet die *.dll auch das nicht :(, wäre echt besser wenn man das Return noch bearbeiten könnte.
Was ist das denn für eine DLL? Kannst du die nicht ändern?

Allein der Name der Methode ReadASCIIString ist schonmal irreführend, da ASCII ein 7 Bit Encoding ist und dann nicht soetwas rauskommen kann wie "Kirschblüte".

Offenbar wurden die Zeichen mit dem Encoding CP1252 (bzw. iso-8859-1 oder iso-8859-15) gelesen, welches vermutlich einfach die Standard ANSI Code Page sein dürfte.
C#:
get { return Encoding.UTF8.GetString(
    Encoding.Default.GetBytes(
      Reader.ReadASCIIString(Wort)
    )
)

Gruß
 
Zurück