1

これがすでに回答されている場合はお詫び申し上げます。同様のトピックがありますが、CocoaとNSStringsに関連するトピックは見つかりませんでした...

MFMailComposeViewControlleriPhoneで送信されるHTMLメールに埋め込むクリック可能なURLを作成しています。私はURLを作成し、stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding空白などを磨くために使用します。次に、周囲のHTMLを追加して次のようにします。

<a href = "http://www.site.com/viewitem?name=Johnny%20Rotten&age=53&mate=sid%20vicious">view</a>

すべて順調なので、emailBodyに追加されます。しかし、一度[mailComposer setMessageBody:emailBody isHTML:YES]すべてが私のURL内で理想的ではなく&なります。&amp;

これを制御できますか?より良いエンコーディングアルゴリズムはありますか?HTMLが少し錆びているので、間違ったエンコーディングを使用している可能性がありますか?サーバー上で解析して&amp;元に戻すことができると確信しています&が、Cocoaの方法を探しています...

ありがとう!

4

2 に答える 2

2

&amp;実際、&は常にHTML属性のようにエンコードする必要があります。リンクを含む。フォーム値の区切り文字を含みます。だから、あなたがそれを望んでいることを知らなかったとしても、それはあなたが望むことを正確に行います。

このように見てください:あなたのURLには、があります&age=53..。これは最初に文字エンティティとして解釈され、その後は機能せず、アンパサンドとそれに続くより多くの文字データとして解釈されます。

W3Cの仕様は、これについて非常に明確です。

&amp;作成者は、文字参照(エンティティ参照のオープン区切り文字)の先頭との混同を避けるために、「&」の代わりに「」(ASCII 10進数38)を使用する必要があります。&amp;CDATA属性値内では文字参照が許可されているため、作成者は属性値にも「」を使用する必要があります。

それはそれを解決するはずです:使用し&amp;ないで&ください。

于 2010-01-21T08:36:42.963 に答える
0

MFMailComposeViewControllerを呼び出していますか

setMessageBody:isHTML:

そして、あなたは何に設定isHTMLしますか?

設定によっては、MFMailComposeViewControllerがメッセージ本文全体のエンコードを支援しようとしている可能性があります...

本文を自分でエンコードしないか、本文全体をHTMLにします。

于 2010-01-21T09:00:20.327 に答える