Web サイトから Unicode テキストを取得して NSString に保存しました。問題は、文字列内のテキストが正しくエンコードされていないため、記号しか表示されないことです。ウェブサイトのテキストは主にヘブライ文字です。
NSLog(@"%@", [trafficNodes[0] firstChild]);
NSLog(@"%@", [[trafficNodes[0] firstChild] content]);
NSLog(@"%@", [[[trafficNodes[0] firstChild] content] stringByReplacingPercentEscapesUsingEncoding:NSASCIIStringEncoding]);
これは私がログに見るものです:
2013-01-25 18:44:26.391 HTMLParsing[2450:c07] {
nodeContent = "\U05f3\U009e\U05f3\U00a2\U05f3\U2022\U05f3\U201c\U05f3\U203a\U05f3\U009f \U05f3\U009c\U05f3\U00a9\U05f3\U00a2\U05f3\U201d: 18:35\U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0\U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0\U05f3\U201d\U05f3\U00d7\U05f3\U00a0\U05f3\U2022\U05f3\U00a2\U05f3\U201d \U05f3\U2013\U05f3\U2022\U05f3\U00a8\U05f3\U009e\U05f3\U00d7.\U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0\U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0***\U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0\U05f3\U009c\U05f3\U009e\U05f3\U00a1\U05f3\U2122\U05f3\U00a8\U05f3\U00d7 \U05f3\U2022\U05f3\U009c\U05f3\U00a7\U05f3\U2018\U05f3\U009c\U05f3\U00d7 \U05f3\U201c\U05f3\U2122\U05f3\U2022\U05f3\U2022\U05f3\U2014\U05f3\U2122\U05f3\U009d \U05f3\U2022\U05f3\U00d7\U05f3\U2013\U05f3\U009e\U05f3\U2022\U05f3\U00a0\U05f3\U2122\U05f3\U009d \U05f3\U2014\U05f3\U2122\U05f3\U2122\U05f3\U2019\U05f3\U2022: 918 - 800 - 1-800\U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0\U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0\U05f3\U2018\U05f3\U00a0\U05f3\U00a1\U05f3\U2122\U05f3\U00a2\U05f3\U201d \U05f3\U2018\U05f3\U00a7\U05f3\U00a8\U05f3\U2018\U05f3\U00d7 \U05f3\U2018\U05f3\U00d7\U05f3\U2122 \U05f3\U00a1\U05f3\U20aa\U05f3\U00a8, \U05f3\U2019\U05f3\U2122\U05f3\U00a0\U05f3\U2022\U05f3\U00d7 \U05f3\U009e\U05f3\U00a9\U05f3\U2014\U05f3\U00a7\U05f3\U2122\U05f3\U009d \U05f3\U2022\U05f3\U009e\U05f3\U00d7\U05f3\U00a0\"\U05f3\U00a1\U05f3\U2122\U05f3\U009d \U05d2\U20ac\U201c \U05f3\U2122\U05f3\U00a9 \U05f3\U009c\U05f3\U201d\U05f3\U2022\U05f3\U00a8\U05f3\U2122\U05f3\U201c \U05f3\U009e\U05f3\U201d\U05f3\U2122\U05f3\U00a8\U05f3\U2022\U05f3\U00d7, \U05f3\U2019\U05f3\U009d \U05f3\U203a\U05f3\U00a9\U05f3\U201d\U05f3\U203a\U05f3\U2018\U05f3\U2122\U05f3\U00a9 \U05f3\U20aa\U05f3\U00a0\U05f3\U2022\U05f3\U2122. \U05f3\U2018\U05f3\U201d\U05f3\U2019\U05f3\U2122\U05f3\U00a2\U05f3\U203a\U05f3\U009d \U05f3\U009c\U05f3\U009e\U05f3\U00a2\U05f3\U2018\U05f3\U00a8 \U05f3\U2014\U05f3\U00a6\U05f3\U2122\U05f3\U2122\U05f3\U201d \U05d2\U20ac\U201c \U05f3\U0090\U05f3\U20aa\U05f3\U00a9\U05f3\U00a8\U05f3\U2022 \U05f3\U00d7\U05f3\U009e\U05f3\U2122\U05f3\U201c \U05f3\U2014\U05f3\U00a6\U05f3\U2122\U05f3\U2122\U05f3\U201d \U05f3\U009c\U05f3\U2122\U05f3\U009c\U05f3\U201c \U05f3\U201d\U05f3\U009e\U05f3\U2018\U05f3\U00a7\U05f3\U00a9 \U05f3\U009c\U05f3\U2014\U05f3\U00a6\U05f3\U2022\U05f3\U00d7. \U05f3\U201d\U05f3\U2122\U05f3\U2022 \U05f3\U201c\U05f3\U00a8\U05f3\U2022\U05f3\U203a\U05f3\U2122\U05f3\U009d, \U05f3\U00a2\U05f3\U00a8\U05f3\U00a0\U05f3\U2122\U05f3\U2122\U05f3\U009d \U05f3\U2022\U05f3\U009e\U05f3\U00a8\U05f3\U2022\U05f3\U203a\U05f3\U2013\U05f3\U2122\U05f3\U009d, \U05f3\U2022\U05f3\U2014\U05f3\U20aa\U05f3\U00a9\U05f3\U2022 \U05f3\U0090\U05f3\U00d7\U05f3\U009d \U05f3\U0090\U05f3\U00d7 \U05f3\U201d\U05f3\U2122\U05f3\U009c\U05f3\U201c\U05f3\U2122\U05f3\U009d \U05f3\U201d\U05f3\U00a2\U05f3\U00a9\U05f3\U2022\U05f3\U2122\U05f3\U2122\U05f3\U009d \U05f3\U009c\U05f3\U201d\U05f3\U00d7\U05f3\U20aa\U05f3\U00a8\U05f3\U00a5 \U05f3\U009c\U05f3\U203a\U05f3\U2018\U05f3\U2122\U05f3\U00a9.\U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0\U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0 \U00a0\U05f3\U00a2\U05f3\U2022\U05f3\U00a8\U05f3\U009a \U05f3\U201c\U05f3\U2122\U05f3\U2022\U05f3\U2022\U05f3\U2014\U05f3\U2122 \U05f3\U201d\U05f3\U00d7\U05f3\U00a0\U05f3\U2022\U05f3\U00a2\U05f3\U201d: \U05f3\U009e\U05f3\U2022\U05f3\U00a8 \U05f3\U00a0\U05f3\U00a2\U05f3\U009e\U05f3\U009f.";
nodeName = text;
}
2013-01-25 18:44:26.392 HTMLParsing[2450:c07] ׳׳¢׳•׳“׳›׳ ׳׳©׳¢׳”: 18:35 ׳”׳×׳ ׳•׳¢׳” ׳–׳•׳¨׳׳×. *** ׳׳׳¡׳™׳¨׳× ׳•׳׳§׳‘׳׳× ׳“׳™׳•׳•׳—׳™׳ ׳•׳×׳–׳׳•׳ ׳™׳ ׳—׳™׳™׳’׳•: 918 - 800 - 1-800 ׳‘׳ ׳¡׳™׳¢׳” ׳‘׳§׳¨׳‘׳× ׳‘׳×׳™ ׳¡׳₪׳¨, ׳’׳™׳ ׳•׳× ׳׳©׳—׳§׳™׳ ׳•׳׳×׳ "׳¡׳™׳ ג€“ ׳™׳© ׳׳”׳•׳¨׳™׳“ ׳׳”׳™׳¨׳•׳×, ׳’׳ ׳›׳©׳”׳›׳‘׳™׳© ׳₪׳ ׳•׳™. ׳‘׳”׳’׳™׳¢׳›׳ ׳׳׳¢׳‘׳¨ ׳—׳¦׳™׳™׳” ג€“ ׳׳₪׳©׳¨׳• ׳×׳׳™׳“ ׳—׳¦׳™׳™׳” ׳׳™׳׳“ ׳”׳׳‘׳§׳© ׳׳—׳¦׳•׳×. ׳”׳™׳• ׳“׳¨׳•׳›׳™׳, ׳¢׳¨׳ ׳™׳™׳ ׳•׳׳¨׳•׳›׳–׳™׳, ׳•׳—׳₪׳©׳• ׳׳×׳ ׳׳× ׳”׳™׳׳“׳™׳ ׳”׳¢׳©׳•׳™׳™׳ ׳׳”׳×׳₪׳¨׳¥ ׳׳›׳‘׳™׳©. ׳¢׳•׳¨׳ ׳“׳™׳•׳•׳—׳™ ׳”׳×׳ ׳•׳¢׳”: ׳׳•׳¨ ׳ ׳¢׳׳.
2013-01-25 18:44:27.358 HTMLParsing[2450:c07] ׳׳¢׳•׳“׳›׳ ׳׳©׳¢׳”: 18:35 ׳”׳×׳ ׳•׳¢׳” ׳–׳•׳¨׳׳×. *** ׳׳׳¡׳™׳¨׳× ׳•׳׳§׳‘׳׳× ׳“׳™׳•׳•׳—׳™׳ ׳•׳×׳–׳׳•׳ ׳™׳ ׳—׳™׳™׳’׳•: 918 - 800 - 1-800 ׳‘׳ ׳¡׳™׳¢׳” ׳‘׳§׳¨׳‘׳× ׳‘׳×׳™ ׳¡׳₪׳¨, ׳’׳™׳ ׳•׳× ׳׳©׳—׳§׳™׳ ׳•׳׳×׳ "׳¡׳™׳ ג€“ ׳™׳© ׳׳”׳•׳¨׳™׳“ ׳׳”׳™׳¨׳•׳×, ׳’׳ ׳›׳©׳”׳›׳‘׳™׳© ׳₪׳ ׳•׳™. ׳‘׳”׳’׳™׳¢׳›׳ ׳׳׳¢׳‘׳¨ ׳—׳¦׳™׳™׳” ג€“ ׳׳₪׳©׳¨׳• ׳×׳׳™׳“ ׳—׳¦׳™׳™׳” ׳׳™׳׳“ ׳”׳׳‘׳§׳© ׳׳—׳¦׳•׳×. ׳”׳™׳• ׳“׳¨׳•׳›׳™׳, ׳¢׳¨׳ ׳™׳™׳ ׳•׳׳¨׳•׳›׳–׳™׳, ׳•׳—׳₪׳©׳• ׳׳×׳ ׳׳× ׳”׳™׳׳“׳™׳ ׳”׳¢׳©׳•׳™׳™׳ ׳׳”׳×׳₪׳¨׳¥ ׳׳›׳‘׳™׳©. ׳¢׳•׳¨׳ ׳“׳™׳•׳•׳—׳™ ׳”׳×׳ ׳•׳¢׳”: ׳׳•׳¨ ׳ ׳¢׳׳.
運がない別のエンコーディングを使用してみました。
編集:
使用後:
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", string);
ログにテキストが正しく書き込まれているのを確認しましたが、エンコーディングを失わずにそれを NSData に変換するにはどうすればよいですか?
HTMLParser に渡す必要があります。
編集 (2):
私にとってうまくいったのは、正しいエンコーディングを使用して NSData を NSString に変換し、元に戻すことでした。
NSString *encodedStringData = [[NSString alloc] initWithData:reportsHtmlData encoding:NSUTF8StringEncoding];
NSData *reportsHtmlDataEncoded = [encodedStringData dataUsingEncoding:CFStringConvertEncodingToNSStringEncoding (kCFStringEncodingWindowsHebrew)];
ご協力いただきありがとうございます。