1

私はプロジェクトで文字列を扱っています。サービスにデータ(文字列)を送信すると、サービスはデータ(文字列)を使用してXMLに応答します。以前は、&、 "、'、などの特別な文字を送信するときに問題に直面していました。文字列内の<、>、$、%、(、)など。

次に、以下のように送信する前に文字列をエンコードしました。

NSString *str=@"£&@)(;:/-.,?!'"[]{}#%^*+=Â¥$â¬><~||_~<.,?!'m"";
NSString *stringToSend=[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

送信されるデータは次のとおりです。" %C2%A3%26%40%29%28%3B%3A%2F-。%2C%3F%21%27%22%5B%5D%7B%7D%23%25 %5E%2A%2B%3D%C2%A5%24%E2%82%AC%3E%3C〜%7C%7C_〜%3C。%2C%3F%21%27m%22 "

その後、サーバーは必要に応じてデータを処理します。

サーバーからデータを受信して​​いる間、私は以下のようにデコードします:

NSString *strReceived=@"%C2%A3%26%40%29%28%3B%3A%2F-.%2C%3F%21%27%22%5B%5D%7B%7D%23%25%5E%2A%2B%3D%C2%A5%24%E2%82%AC%3E%3C~%7C%7C_~%3C.%2C%3F%21%27m%22";
NSString *str=[str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

次に、受信するデータは次のとおりです。 「さすがに。

問題/問題

ここで、文字列にå、ø、Ø、æなどのノルウェー語の文字が含まれている場合。応答の文字列には、(åの場合は%E5)(æの場合は%E6)と(Øの場合は%D8)と(øの場合は%F8)が含まれます。

「 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding 」を実行した後、文字列が無効として取得されます。

誰かがxmlで受け取ったすべての文字を処理し、それらを完全に解析する方法を提案できますか?Plzはur入力を支援します...

事前にTnx。

4

0 に答える 0