NSString でエスケープされた Unicode を置き換えようとしています。私は CFString 関数をうまく扱えなかったので、正規表現を試してみようと思いました。
ここに正規表現があります
NSRegularExpression *regexUnicode2 = [NSRegularExpression regularExpressionWithPattern:@"(\\u([0-9A-Fa-f]){4}){2}" options:0 error:&error];
次に、これを使用して一致を取得しようとします
NSArray *twoEscapeArray = [regexUnicode2 matchesInString:selfCopy options:0 range:NSMakeRange(0, self.length)];
selfCopy は、入力文字列の変更可能なコピーです。その文字列の一部を次に示します。
muestran al p\u00c3\u00bablico las encuadernaciones de las colecciones reales adem\u00c3\u00a1s de otros objetos hist\u00c3\u00b3ricos en relaci\u00c3\u00b3n con \u00c3\u00a9stas.
La muestra, thinkada a nivel mundial como uno de los conjuntos ligatorios hist\u00c3\u00b3ricos m\u00c3\u00a1s importantes, se completa con obras de arte como armas, alfombras y relojes. Estos son objetos que ayudan a entender la encuadernaci\u00c3\u00b3n como elemento basic de la cultura de corte.
ロス フォンドス デ ラ レアル ビブリオテカ、デル レアル モナステリオ デ サン ロレンソ デ エル エスコリアル、デル モナステリオ デ サンタ マル\u00c3\u00ada ラ レアル デ ラス ウェルガス デ ブルゴス、デル モナステリオ デ ラス
適切に変換しないと、これらのエスケープされた Unicode ペアは、UIWebView に配置したときに個別の文字として扱われます (各ペアは 2 つの文字を生成します)。
これは、生の JSON データがどのようにコーディングされているかということですが、うまくラテン文字に変換できませんでした。
とにかく、問題はtwoEscapeArray
、一致の試行後に配列が nil になることです。理由はわかりません。