UILabel转换Unicode(日语)并显示

时间:2012-12-20 16:58:13

标签: unicode uilabel

经过数小时的研究,我放弃了。 我从WebService接收文本数据。在某些情况下,文本是日语,WS返回其单播版本。例如:\ U00e3 \ U0082 \ U008f 我知道这是一个日本人的角色。

我正在尝试在UILabel中显示此Unicode字符或字符串。 由于简单的setText方法没有显示正确的字符,我使用了这个(复制的)例程:

unichar unicodeValue = (unichar) strtol([[[p innerData] valueForKey:@"title"] UTF8String], NULL, 16);
char buffer[2];
int len = 1;
if (unicodeValue > 127) {
    buffer[0] = (unicodeValue >> 8) & (1 << 8) - 1;
    buffer[1] = unicodeValue & (1 << 8) - 1;
    len = 2;
} else {
    buffer[0] = unicodeValue;
}
    [[cell title] setText:[[NSString alloc] initWithBytes:buffer length:len encoding:NSUTF8StringEncoding] ];

但没有成功:UILabel是空的。 我知道有一种方法可以将字符转换为十六进制,然后从十六进制转换为字符串......有更简单的方法吗?

解决

首先,您必须确保您的服务器正在发送UTF8而不是UNICODE CODE POINTS。我找到的唯一方法是json_encode包含UNICODE字符的字符串。 然后,在iOS用户unescaping跟随此链接Using Objective C/Cocoa to unescape unicode characters, ie \u1234

0 个答案:

没有答案
相关问题