2010-12-04 5 views
0

Hallo dort Ich habe versucht, eine XML-Datei mit UTF-Zeichenfolgen zu lesen, und bin mit dem Versuch fest, sie zu konvertieren. Mein Szenarioiphone; UTF-Zeichenfolgen von xml

  1. XML-Datei aus dem Internet Reading - in Zeiten, die XML-Datei enthält Unicode
  2. Die Dateien ok lesen, zeigt ok im Browser
  3. Aber wenn ich versuche, sie angezeigt werden - statt der Unicode-Zeichen sehe ich Ascii umgewandelt, so etwas wie & # 54620; & # 54620; [I Raum hinzugefügt, so dass sie Anzeige UTF in der Post does'nt]
  4. ich versuchte, sie in UTF8String ocnvert mit [NSString stringWithUTF8String: [Beschreibung UTF8String]], aber did'nt

Was am arbeiten Ich vermisse hier?

edit: Wenn ich verstehen kann, wie man eine Zeichenfolge konvertiert & # 2310; & # 2306; & # 2358; & # 2367; & # 2325; & # 2313; (Natürlich ohne Leerzeichen nach dem &) in seine jeweilige UTF-Symbole (in diesem Fall - hindi) - es wäre ein guter Anfang sein

bearbeiten: XML-Beispiel Inhalt description = „ख त“, die Ich mag würde konvertieren UTF Zeichen, ich konnte keine Funktion finden diese Umwandlung zu tun

Dank

+0

veeru, haben diese UTF-8-Zeichen wirklich Leerzeichen zwischen & und #? –

+0

nein, KEINE Leerzeichen, ich habe Leerzeichen in diesem Post hinzugefügt, so dass es das UTF-Zeichen nicht anzeigt – Veeru

+0

bin irgendwie fest auf diesem ein? irgendjemand ? – Veeru

Antwort

1

Vermutlich sind Sie, dass die XML-Daten in einem NSData Objekt zu lesen; Es sieht so aus, als ob du es irgendwo in eine Beschreibung umwandelst. Versuchen Sie diesen Ansatz:

NSData *response = [self getXMLData]; 
NSString *content = [[NSString alloc] initWithBytes:[response bytes] 
    length:[response length] encoding: NSUTF8StringEncoding]; 

, die Sie sollten mit richtig gebildet Zeichen eine gute Saite erhalten.

+0

bin mit TBXML, ich habe versucht, was Sie vorgeschlagen, das nslog des Inhalts zeigt die Unicode-Teile als & # 54620; etc; aber wenn ich versuchte, es mit etwas wie diesem anzuzeigen NSString * description = [NSString stringWithFormat: @ "% @", [TBXML valueOfAttributeNamed: @ "Beschreibung" forElement: Stadt]]; lblCurrentConditionText.text = [NSString stringWithUTF8String: [Beschreibung UTF8String ]]; - es zeigt immer noch & # 54620; – Veeru

+0

Was passiert, wenn Sie vor dem Zuweisen der Beschreibung eine Zeichenfolge mit NSString erstellt haben? PreString = [NSString stringWithUTF8String: [TBXML valueOfAttributeNamed: @ "Beschreibung" forElement: city]]; –

+0

NSString * description = [TBXML valueOfAttributeNamed: @ "Beschreibung" forElement: city]; \t \t const char * utfStr = [Beschreibung UTF8String]; \t \t NSLog (@ "Beschreibung >>% @", [[NSString Alloc] InitWithCString: UtfStr Codierung: NSUTF8StringEncoding]); Ich versuchte das oben genannte auch, ich sehe nur noch die asii Version – Veeru