【发布时间】:2014-02-13 05:38:16
【问题描述】:
我有一个来自网络服务的字符串,它是西里尔字母和拉丁/英语字符的混合体。当通过分隔句子中的单词来构建数组时,它在使用 NSLog 时显示的是 unicode 代替字母。我想知道如何将任何西里尔文/unicode 字符转换为正确可读的拉丁/英文单词。比如……
NSString *sentence = @"The Tobе Elіte"; (e in Tobe is Cyrillic, and i in Elite)
将字符串中的每个单词放入数组后,打印时我得到:
(
The,
"Tob\U0435",
"El\U0456te"
)
我需要将其音译为拉丁语“Tobe”和拉丁语“Elite”。如果我尝试通过做比较我现在拥有的东西
if(![@"Tobe" isEqualToString:[array objectAtIndex:1]])
//Tobe is not Equal to Tob\U0435
如果我解释得很糟糕,我深表歉意,如果您有任何问题可以帮助更好地理解我的问题,请随时提问。我已经尝试了几件事来将此编码为正确的 UTF8。例如,这不起作用:
NSMutableString *buffer = [string mutableCopy];
CFMutableStringRef bufferRef = (__bridge CFMutableStringRef)buffer;
CFStringTransform(bufferRef, NULL, kCFStringTransformToLatin, false);
最终我需要使用 NSPredicate 在数组中搜索匹配的单词,但是数组中的 Unicode 不允许我这样做。任何帮助表示赞赏。
【问题讨论】:
标签: ios objective-c cocoa nsstring nsstringencoding