0

私はiOSプログラミングが初めてで、XML文字列を解析しようとしています:<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><SurveyListGetResponse xmlns="http://tempuri.org/"><SurveyListGetResult>{"SurveyList":[{"SurveyID":1,"SurveyName":"SomeSurvey","SurveyDescription":"Clean","BeginDate":"01.01.2013","EndDate":"05.01.2013"}],"Questions":[{"SurveyID":1,"QuestionID":8,"Question":"Mobile Question","AnswerTypeID":2}],"Answers":[{"SurveyID":1,"QuestionID":8,"AnswerID":18,"Answer":"YES"},{"SurveyID":1,"QuestionID":8,"AnswerID":19,"Answer":"Hayör"}]}</SurveyListGetResult></SurveyListGetResponse></soap:Body></soap:Envelope>

これは私の xml 文字列です。上に表示されているように、"Answer":"Hayör" にトルコ語の文字が含まれています。すべての文字列を確認すると、パーサーは "Hay" まで実行されますが、"ör" は使用されません。

 NSData *xmlData = [responseString dataUsingEncoding:NSWindowsCP1254StringEncoding];

    NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:xmlData];

    [xmlParser setDelegate:self];

    [xmlParser parse];

これは私のパーサー コードで、NSWindowsCP1254StringEncoding と NSUTF8StringEncoding を使用していました。アフター文字列はパーサーに行く、それはそのように変化しています{"SurveyList":[{"SurveyID":1,"SurveyName":"Some Survey","SurveyDescription":"Clean","BeginDate":"01.01.2013","EndDate":"05.01.2013"}],"Questions":[{"SurveyID":1,"QuestionID":8,"Question":"Mobil Soru","AnswerTypeID":2}],"Answers":[{"SurveyID":1,"QuestionID":8,"AnswerID":18,"Answer":"YES"},{"SurveyID":1,"QuestionID":8,"AnswerID":19,"Answer":"Hay

私はそれを解決するために何をする必要がありますか? 下手な英語でごめんなさい、ありがとう。

4

1 に答える 1

0

データNSUTF8StringEncoding としてパーサーに渡し、その後、トルコ語に使用するエンコーディングに変換します。これがうまくいかない場合は、次を使用して文字列エスケープを試みますstringByAddingPercentEscapesUsingEncoding

また... SurveyListGetResultタグ内のデータが実際には JSON 文字列であることに気付きましたか?

于 2013-01-22T12:07:52.080 に答える