2011-02-09 130 views
4

我该如何从NSWindowsCP1251StringEncoding转换为UTF-8? 我有几次尝试,但没有人应该如此。我的最后一次尝试是:iPhone - 从WindowsCP1251转换NSString编码为UTF8

NSData *dt = [mystr dataUsingEncoding:NSUTF8StringEncoding]; 
NSString *str = [NSString alloc] initWithData:dt encoding:NSWindowsCP1251StringEncoding]; 

str的结果是不可读的。有没有人遇到类似的东西?

+1

你如何获得在首位的CP1251字符串? – 2011-02-09 08:52:11

+0

在你的代码示例中,首先将`mystr`从任何它转换为UTF-8,然后创建一个新字符串,但告诉`NSString`它是CP1251。哪个应该是CP1251? – 2011-02-09 08:56:00

回答

7

我觉得你是如此接近:

// Convert it back to CP1251 
NSData *dt = [mystr dataUsingEncoding:NSWindowsCP1251StringEncoding]; 

// Now load it as UTF8 
NSString *str = [NSString alloc] initWithData:dt encoding:NSUTF8StringEncoding];