如何将unicode转换为字符串?

Posted

技术标签:

【中文标题】如何将unicode转换为字符串?【英文标题】:how to convert unicode to nstring? 【发布时间】:2014-01-29 09:24:29 【问题描述】:

我必须将 unicode char 转换为 NSString 我必须转换的文本是 doc.title = "hello 64 \U00bf world sample" 我的代码是:

UILabel *lblName=[[UILabel alloc]initWithFrame:CGRectMake(15, 0, 250, 88)];
            const char *cString = [doc.title UTF8String];//where doc.title is above text
            NSData *data = [NSData dataWithBytes:cString length:strlen(cString)];
            NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            lblName.text= string;
            NSLog(@"Title is = %@ \n",doc.title);
            lblName.font=[UIFont boldSystemFontOfSize:16];
            lblName.numberOfLines=100;
            lblName.backgroundColor=[UIColor clearColor];
            lblName.textColor=[UIColor  colorWithRed:2.0/255.0 green:104.0/255.0 blue:170.0/255.0 alpha:1.0];
            [cell.contentView addSubview:lblName];
            [lblName release];

我在哪里做错了? 尝试了link,但无法正确。

【问题讨论】:

【参考方案1】:
+(NSString *)getTextFromChar:(unichar)character

    NSString *string = [NSString stringWithFormat:@"%C",character];
    return string;

将你的 cString 传递给这个方法

【讨论】:

【参考方案2】:

试试这个

char *cString[] = [doc.title UTF8String];//where doc.title is above text
            NSData *data = [NSData dataWithBytes:cString length:strlen(cString)];
            NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            lblName.text= string;

或者直接调用

-[NSString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES].

【讨论】:

它打印的是“hello 64 ¿ world sample”而不是“hello 64 — world sample” u002D 代表 - 连字符减去这个 u00bf

以上是关于如何将unicode转换为字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何将unicode字符转换成汉字?

如何将单片机中字符串转unicode码

如何将char类型数组转换为unicode字符串

如何将unicode转换成汉字

易语言如何转换16进制?

如何将 unicode 字符串转换为其 unicode 转义?