none
Convert.ToChar mit Sonderzeichen RRS feed

  • Frage

  • Moin allerseits!

    Ich habe ein Problem mit Convert.ToChar und einigen Sonderzeichen wie z.B. Ž (ANSI 142/Unicode 17D). Rufe ich Convert.ToChar(142) auf, bekommen ich nicht das gewünschte Zeichen sondern ein Whitespace. Änderung des Fonts etc. macht keinen Unterschied.
    Ich programmiere zwar schon seit einigen Jahren beruflich in C#, aber hier stehe ich echt wie der Ochs vorm Berg :)

    Kann mir irgendjemand einen Tipp geben, wie ich aus der 142 (ist durch die Eingabedatei gegeben) ein "Ž" machen kann?

    Vielen Dank schon mal.

    Hans 

    Donnerstag, 10. Februar 2011 13:27

Antworten

Alle Antworten

  • 0142 = Tastatureingabecode laut Zeichentabelle (rechts unten)

    0x017D = 381 = Unicodezeichen laut Zeichentabelle (linkes unten)

    char c = (char)381.

    Wozu musst Du die 142 nehmen, wenn du doch die 17d hast?

    Donnerstag, 10. Februar 2011 13:51
  • Hallo Hans,

    der ANSI Zeichensatz ist normal über Encoding.Default abgreifbar.
    Also zum Beispiel:

      string c = Encoding.Default.GetString(new byte[]{142});
    


    oder eben als Unicode:

    char cu = (char) 0x17D;


    ciao Frank

    Donnerstag, 10. Februar 2011 13:52
  • Disregard... found a solution myself.

    byte[] src = {142};
    Encoding enc = Encoding.GetEncoding(1252);
    string dst = enc.GetString(src);

    Thanks to anyone who looked into this.

    Donnerstag, 10. Februar 2011 13:59
  • Hallo D.,

    Das 1252 ist normal (bei uns hierzulande) Encoding.Default. 

       int cp = Encoding.Default.CodePage; // 1252

    Encoding.Default ist generischer - siehe meine verlinkte Doku dazu.

    Aber dann hattest Du nur nicht mein Posting angeschaut.


    ciao Frank

    Donnerstag, 10. Februar 2011 15:05