http リクエストで文字列を取得しています。文字列は ANSI カラー エンコーディングの Big 5 です。
私が実行した場合:
NSStringEncoding big5 = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingBig5);
NSString *httpResponse2 = [[NSString alloc] initWithData:data encoding:big5];
ANSI色が原因だと思います。
そのため、文字列を繰り返し処理し、27 (esc) の後に 91 ([) が続く文字を 109 (m) に達するまで削除します。これにより、ANSI フォーマットが削除されます。一部の文字列では機能しますが、文字列が十分に長いと問題が発生します。エンコーディングが失敗し、iPhone エンコーディングがサイレントに失敗して nil が返されるため、どの文字が原因であるかを見つけるのに苦労しています。エンコーディングが失敗する原因となっている文字を特定する方法はありますか?