5

カスタム スマイリー (画像) でテキストを表示するために UIWebview で NSString を表示していますが、UIWebview は \n、\r、\t、空白、&、<、> などの特殊文字を検出できないため、問題が発生しました。 NSString を HTML 文字列に変換して UIWebView にロードする方法は?

4

4 に答える 4

3

そのための組み込みのソリューションはありません。HTML エンティティをエンコードする必要があります。ニーズに合ったNSString-HTMLと呼ばれるオープンソース プロジェクトがあります。

ここには、 Google のツールボックスに基づく優れた NSString カテゴリもあります。

于 2013-04-08T09:43:35.523 に答える
1

実際、これには組み込みのソリューションがあります... NSAttributedStringで。これを簡単にする NSString のカテゴリを次に示します。

@interface NSString (HTMLString)
- (NSString *)HTMLString;
@end

@implementation NSString (HTMLString)
- (NSString *)HTMLString {
    NSDictionary * const exportParams = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType};
    NSAttributedString *attributed = [[NSAttributedString alloc] initWithString:self];
    NSData *htmlData = [attributed dataFromRange:NSMakeRange(0, attributed.length) documentAttributes:exportParams error:nil];
    return [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];
}
@end
于 2015-02-24T23:40:06.237 に答える
0

あなたはICUトランスフォーメーションを探しています。この機能は、CFString API 関数 CFStringTransform() にラップされています。変換オプション Any-Hex を使用します。エスケープする必要があるグリフのみの NSCharacterSet を作成して最適化することができます。

于 2013-04-08T12:09:46.673 に答える