【发布时间】:2012-05-02 06:45:05
【问题描述】:
我正在尝试替换 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, 考虑一个 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 基层文化。
Los fodos de la Real Biblioteca, del Real Monasterio de San Lorenzo de El Escorial, del Monasterio de Santa Mar\u00c3\u00ada la Real de las Huelgas de Burgos, 拉斯修道院
如果没有适当的转换,当我将这些转义的 unicode 对放入 UIWebView 时,它们将被视为单独的字符(每对产生两个字符)。
这就是原始 JSON 数据的编码方式,我没有运气将其正确转换为拉丁字符。
无论如何,问题在于数组twoEscapeArray 在匹配尝试后为零。我不知道为什么。
【问题讨论】:
标签: regex nsstring nsregularexpression nsstringencoding