ここに私の問題があります。 iPhoneのプログラムはサーバーと同期する必要があります。サーバーはウェブバージョンのサービスと同期します。 Webサービスは文字列の特殊文字をHTMLコードでサーバーに送信します(& #amp; &#quote; №など)。私はこのデータを表示する必要があります。なぜなら、このシンボルを何かに変換する必要があり、xcodeがデコードして描画する必要があるからです。 私が発見したように、UnicodeでのHTMLの最後のコードは同じですが、違いはフォーマットのみです(HTMLの№はUnicodeの\ u8470です)。私は文字列でこの形式を変更し、UTF8としてエンコードしてみました。その結果、今私が機能を持っている:xcode。 HTMLコードの文字列をUnicode文字列に変換する
+(NSString *) replaceHTMLCodes:(NSString *)text{
NSLog(@"replacing HTML codes");
if (text){
NSLog(@"%@", text);
NSString *tmpString=[NSString stringWithString:text];
tmpString = [text copy];
NSString *tmpText = @"";
int locAmp = [tmpString rangeOfString:@"&#"].location;
NSString * Code = @"";
int locComa;
while (locAmp!=NSNotFound) {
tmpText = [tmpText stringByAppendingString:[tmpString substringToIndex:locAmp]];
tmpString = [tmpString stringByReplacingCharactersInRange:NSMakeRange(0, locAmp) withString:@""];
locComa = [tmpString rangeOfString:@";"].location;
Code = [NSString stringWithString:[tmpString substringWithRange:NSMakeRange(0, locComa)]];
Code = [Code stringByReplacingOccurrencesOfString:@"&#" withString:@"\\u"];
NSLog(@"%@", Code);
tmpString = [tmpString stringByReplacingCharactersInRange:NSMakeRange(0, locComa+1) withString:@""];
tmpText = [tmpText stringByAppendingFormat:@"%C", Code];
locAmp = [tmpString rangeOfString:@"&#"].location;
}
tmpText = [tmpText stringByAppendingString:tmpString];
NSLog(@"%@", tmpText);
return tmpText;
}
else
return text;
}
しかし、それは正しく動作しません - それは私が欲しいその代わりに、ランダムなUnicodeの記号を表示します。私はNSUTF8StringEncodingを使用しようとしましたが、それも役に立たなかった。
これを解決する方法はありますか?私はコードを変換して正しいですか?
:それはこのようなHTMLが生成されます
UTF-8エンコードされたテキストを出力するように設定したHTMLパーサーによるデータ。 –