0

NSMutableDictionary を作成し、自分の Web サイトからクエリされたフォーラムの投稿を入力しようとしています。超シンプルなコード、ただ...

_postBodies = [[NSMutableDictionary alloc] initWithContentsOfURL:[NSURL URLWithString:urlBodiesSource]];

...PHP/MySQL で生成された plist ファイルからプルすると、通常はうまく機能します。問題は、投稿のいずれかに英語以外の文字や HTML 記号などの特定の文字が含まれている場合、全体が完全に初期化に失敗することです。デバッガーで行ごとに追跡しましたが、ソースファイルの 34 の投稿 (または何でも) で文字通り動作するのを見ることができますが、奇妙な文字を含む 35 番目の投稿を plist に追加すると、すべてが失敗します。初期化します。

これを回避する方法はありますか?NSMutableDictionary で問題となる文字を削除またはエスケープする方法はありますか? それとも、おそらく私の plist ファイルをつまずかせている可能性がありますが、Dictionary は正常に動作していますか?

たとえば、この plist ソース ファイルを確認してください。投稿は 3 つしかないのですが、問題は最後の投稿です。その投稿を除外すると、すべてが機能します。それを含めると、NSMutableDictionary の入力にまったく失敗します。いくつかのタブといくつかの O に曲折アクセントが付いていることを除けば、かなり普通のように見えます。

<key>2</key>
<string>Wow, SquattingB.  I know I'm melodramatic, but what's with you?  lol.  Yeah, it's a shame that all the cool people congregated here just to watch the codex, only to have the series end and leave everyone dumbstruck as to what to do.  (It was that good, nothing else has the same appeal)  Hopefully this forum will remain as cool as it has been up to the point when the creators get out of college.  Then maybe we can see whether they have awesome news of what is next for the series and the forum or if they just boot us back to HBO.  lol.But what is a forum?Dictionary   forum |?fôr?m| noun ( pl. forums ) 1 a place, meeting, or medium where ideas and views on a particular issue can be exchanged : it will be a forum for consumers to exchange their views on medical research. 2 a court or tribunal. 3 ( pl. fora |?fôr?|) (in an ancient Roman city) a public square or marketplace used for judicial and other business. ORIGIN late Middle English (sense 3) : from Latin, literally ‘what is out of doors,’ originally denoting an enclosure surrounding a house; related to fores ‘(outside) door.’ Sense 1 dates from the mid 18th cent.That's what I thought.  So the people are what make it great, yes?  And I'm sure the patrons aren't leaving anytime soon, so we're in pretty good standing as to what will become of the forum.  For now, anyway.</string>

誰かがこれを以前に経験したことがありますか、または誰かアドバイスを提供できますか? 私は始めたばかりなので、より簡単な解決策をいただければ幸いですが、あなたが提供できる洞察があれば幸いです!

4

1 に答える 1

0

PList テキストのエンコーディングをチェックしていますか? iOS プログラミングは UTF-8 で行われることに注意してください。

取得している URL は PHP で動作すると思います (質問は PHP タグでマークされているため)。utf8_encode()を使用してテキストをエンコードしようとしましたか?

もう 1 つの方法は、JSON を使用することです。PHP のjson_encode()は、奇妙な文字を UTF-8 16 進表現 ( \x{NUMBER} ) に自動的に変換します。また、 htmlspecialchars()を使用してみてください。

幸運を!

于 2013-05-22T02:30:49.577 に答える