2011-09-22 13 views
3

英語とフランス語の両方をサポートするアプリを書いています。アプリケーションはサーバーから情報を要求し、サーバーの応答はJSONを使用します。私は応答を解析するためにJSONKitライブラリを使用していますが、フランス語の回答から、文字列の解析は次のようになります。NSStringのhtmlコード化された文字をデコードするにはどうすればいいですか?

Membres –Économisez 5% sur les services et jusqu’à 15% sur d’autres produits

私は特殊文字をデコードするにはどうすればよいですか?私はこれを得ること:

Membres – É conomisez 5%シュルレサービスらjusqu ’ à 15%シュルdの’アクセサリー - リモコン、スイッチがproduits

私はNSStringのためのAPIを見て、インスタンスメソッドが、私のいくつかを試してみました文字エンコーディングについて多くのことを知らず、私は奇妙な結果を得ました。ですから、文字エンコーディングの簡単な説明を提供できれば、本当に感謝しています。正しい文字列のエンコーディングで事前

+0

可能な複製を使用している場合:http://stackoverflow.com/questions/1105169/html-character-decoding-in-objective-c-cocoa-touch – mja

+0

可能な複製http://stackoverflow.com/questions/7513312/response-encryption-problem/7514003#7514003 – zaph

答えて

4

チェックアウトthese NSString categories

+0

これはどうすれば使用できますか?おそらくダムの質問ですが、私はまだiPhoneプログラミングの初心者です –

+0

そのファイルとその対応するhヘッダファイルをプロジェクトに追加してください。 NSStringはstringByDecodingHTMLEntitiesという新しいインスタンスメソッドを持ちます。 NSString * decodedString = [encodedString stringByDecodingHTMLEntities]; –

+0

iOS 6で動作していません –

3

NSStringのstringByReplacingPercentEscapesUsingEncodingで

おかげで魔法を行う必要があります。

[yourString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

が適している可能性があります。

+1

私は試しました:NSString * myString = [myOtherString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];しかしその戻り値null。私はmyOtherStringをチェックし、それはエンコードされた文字列を含んでいます。 –

+0

ドキュメントには次のように記載されています。変換が不可能な場合はnilを返します。たとえば、パーセントエスケープではエンコードでは正しくないバイトシーケンスが返されます。 –

+1

これはパーセントデコードのためのものです。質問はhtmlコードのデコードを要求しています –

1

Objective Cコードを使用している場合、このソリューションはうまくいきました。

- (NSString *)decodeHtmlStringValue 
{ 
    NSData *encodedString = [self dataUsingEncoding:NSUTF8StringEncoding]; 
    NSAttributedString *htmlString = [[NSAttributedString alloc] initWithData:encodedString 
                    options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]} documentAttributes:nil error:nil]; 
    return [htmlString string]; 
} 

あなたがの迅速

https://stackoverflow.com/questions/25607247/how-do-i-decode-html-entities-in-swift

+0

これは私のために働いていました。ありがとう! – iAkki