NSASCIIStringEncoding - mit Sonderzeichen "ä" bringt (null)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NSASCIIStringEncoding - mit Sonderzeichen "ä" bringt (null)

    Hi,

    ich hab ein Problem beim Codieren meines Strings in NSData.
    Ich brauche das File, das ich generiere Ascii codiert.

    Den String baue ich so zusammen...

    Quellcode

    1. NSMutableString* test = [[NSMutableString alloc]init];
    2. [test appendString:@"; Projektdaten; Teilweise mit äöü angehngt."];
    3. [test appendString:_flfmkeller.text];
    4. [test appendString:@";llfm-Fenster Keller"];
    5. NSData* dataascii = [test dataUsingEncoding:NSASCIIStringEncoding];
    6. NSLog(@"Data in Ascii %@", dataascii);


    Und möchte dann ein "data-Object" generieren, damit ich das wiederum dann per FTP Upload zur Weiterverarbeitung wegschicken kann.

    Das funktioniert alles wenn ich utf8 benutze.
    Bei Ascii kommt (null) raus. Das liegt an den Sonderzeichen. Nur wie bekomme ich die (Sonderzeichen) jetzt Ascii Codiert mit rein ?

    Danke & Lg,

    Lena
  • Die Umlaute sind in ASCII erstmal nicht vorhanden, deswegen kommt da auch nil zurück. Du brauchst also ein Encoding, mit dem sich auch die Umlaute darstellen lassen. Nimm doch ISO-Latin-1 oder so. Das ist in den ersten 7-Bit mit ASCII identisch. Oder, wenn die Zielgruppe mehr "macisch" ist, nimm MacOS-Roman.


    schönen Gruß

    gandhi
  • gandhi schrieb:

    Es wurde explizit nach "nicht UTF-8" gefragt. Kann ja technische Gründe geben, weil der Empfänger kein UTF-8 unterstützt. (Kann nur eine ignorante Windows-Anwendung sein :D) )

    ciao

    gandhi


    es wurde aber auch explizit nach ASCII gefragt obwohl bekannt sein sollte dass dieses nur die ersten 7 bit abdeckt und dort die umlaute eben nicht drin sind.

    alles andere kann man also nur erraten.
  • Nein, es wurde nicht nach "nicht UTF-8" gefragt. Die Frage lautete:

    Nur wie bekomme ich die (Sonderzeichen) jetzt Ascii Codiert mit rein ?

    Die korrekte Antwort darauf ist: Gar nicht. Die ASCII Codierung umfasst 128 Zeichen und enthält keine Umlaute. Ist so, kann man nicht ändern. Deshalb muss man eine andere Codierung verwenden und da nimmt man besser eine, die nicht gleich die nächste Beschränkung mit sich bringt, wenn man denn die Wahl hat und die Codierung nicht bereits vorgegeben ist.