php request an php-script mit echo -> umlaute werden falsch in NSString (Xcode) dargestellt (Umlaute: ä ü ö ®)

  • php request an php-script mit echo -> umlaute werden falsch in NSString (Xcode) dargestellt (Umlaute: ä ü ö ®)

    Hallo Entwickler,

    an diesem heisen Donnerstag sitze ich natürlich vorm Rechner und habe nichts besseren zu tun als zu programmieren.

    Nun stehe ich vor folgendem Problem:

    Ich setze ein php-request an mein php script aus Xcode haraus ab.
    Meine iPhone App soll also ein php-script auf meinem Webserver nach Daten abfragen.

    Also Antwort bekomme ich folgendes:

    echo -> ä
    echo -> ü
    echo -> ö
    echo -> ®

    Also möchte ich nun über NSLog folgendes in meiner KOnsole ausgaben:

    ä
    Ü
    ö
    ®

    Allerdings werden die Soonderzeichen falsch dargestellt.

    Ü == ‹
    ® == Æ

    PHP-Quellcode

    1. NSString *urlstr = [[NSString alloc] initWithFormat:@"http://www.meinedomain.de?anfrage=0"];
    2. NSURL *url = [[NSURL alloc] initWithString:urlstr];
    3. NSString *ans = [NSString stringWithContentsOfURL:url];
    4. // Empfangene Daten zwischenspeichern
    5. NSMutableArray *empfangeDatensatz = [[NSMutableArray alloc] init];
    6. empfangeDatensatz = [ans componentsSeparatedByString: @"</br>"];
    7. int empfangeDatensatzCount = [empfangeDatensatz count];
    8. XLog(@"Tabelle: %@", [empfangeDatensatz objectAtIndex:0]);
    9. for (int i = 1; i < empfangeDatensatzCount-1; i++) {
    10. NSLog(@"%s",[empfangeDatensatz objectAtIndex:i]); // HIER WERDEN DIE SONODERZEICHEN FEHLERHAFT AUSGEGEBEN!!!
    11. ...
    12. }
    13. [urlstr release];
    14. [url release];
    Alles anzeigen


    Wenn ich den php request über Firefox absetzen werden die Sonderzeichen korrekt dargestellt:

    also ... ü ö ä ®


    Kann mir von euch bitte jemand helfen?

    Ich komme an dem Punkt einfach nicht weiter :(


    Es muss doch irgendwie möglich sein die sonderzeichen ordentlich in der Xcode konsole ausgeben zu lassen.
    Mit UTF8String habe ich auch schon gearbeitet, das führte aber zu einem crash der App.



    Bitte helft mir!!!!!!!


    Vielen lieben Dank ;)
  • wolf_10de schrieb:

    probiers mal mit

    PHP-Quellcode

    1. NSLog(@"%@",[empfangeDatensatz objectAtIndex:i]); // HIER WERDEN DIE SONODERZEICHEN FEHLERHAFT AUSGEGEBEN!!!

    Vielen Dank für deine Unterstützung,

    nein, das hilft leider nicht.

    wenn das php script seine antwort über ein echo absetzt und von der app empfangen wird, scheinen die sonderzeichen irgendwie nicht korrekt übergeben zu werden.

    ich weiß leider nicht wie ich das problem genau umschreiben soll.

    :(
  • wolf_10de schrieb:

    probier mal die Methode

    PHP-Quellcode

    1. stringWithContentsOfURL:encoding:error:

    da kannst du explizit die Kodierung angeben. Die die du verwendest ist eh Deprecated
    Das funktioniert leider auch nicht, da stürzte mir die app ab. encoding soll mit stringWithContentsOfURL nicht funktionieren.
    Das Problem ist ziemlich schlecht zu überschauen.

    ;( ?(
  • wolf_10de schrieb:

    probier mal die Methode

    PHP-Quellcode

    1. stringWithContentsOfURL:encoding:error:

    da kannst du explizit die Kodierung angeben. Die die du verwendest ist eh Deprecated
    Vielen lieben Dank für deine Gedanken die du mit mir teilen konntest.

    Ich habe über deine Anregungen noch einmal nachgedacht und bin zu einer Lösung gekommen!

    PHP-Quellcode

    1. NSURL *url = [[NSURL alloc] initWithString:urlstr];
    2. NSString *ans = [NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:&fileError];


    Das funktioniert bestens.

    Hey, mache dir noch einen schönen Abend :thumbsup: