0

バンドルに保存された html ページがあり、html に {PRICE} などの特定のタグがあり、これらはコードによってランタイムの実際の値に置き換えられます

str=[str stringByReplacingOccurrencesOfString:@"{PRICE}" withString:[self currencyForKey:@"my price"]];

この currencyforkey メソッドによって null 値が返されないことを確認しましたが、すべてのタグをそのような値に置き換えて html ページ全体を作成した後、webview に表示すると、最終的な web ページにいくつかの特殊文字が含まれます。これらの特殊文字は

   

最初のhtmlページ全体とプロジェクト全体でそのような文字をチェックしましたが、見つかりませんでした。どこからそのようなものが来るのでしょうか??? nsasciistring エンコーディングを使用して、バンドルに保存された html から文字列を作成しています

NSString *path=[[NSBundle mainBundle] pathForResource:@"myhtml" ofType:@"html"];
        NSData *htmlData=[NSData dataWithContentsOfFile:path];
        NSString *tableStr=[[NSString alloc] initWithData:htmlData encoding:(NSStringEncoding)NSASCIIStringEncoding];
4

1 に答える 1

0

バンドル内の HTML ページが ASCII エンコーディングであることを確認してください。たとえば UTF-8 エンコーディングの場合、NSASCIIStringEncoding を使用すると、予期しない文字が表示される可能性があります。

于 2013-03-11T12:55:21.607 に答える