2 linshaolie linshaolie 于 2014.08.28 16:42 提问

OC中怎样将UTF8编码转换成中文

如题:有一个Person类,里面重写了description方法,实现返回姓名,年龄等信息。这样我可以直接通过NSLog(@"%@",per); 来输出对象信息。但是如果我把对象存入数组中,然后输出数组:NSLog(@"%@", array);这样输出的结果都是UTF8编码。如果对象per内部的信息是因为和数字的话结果不受影响,如果是中文的话输出的就是UTF8。这是为什么呢?如果才能让输出正常?

#import

@interface Person : NSObject

@property(nonatomic, retain) NSString *name;
@property(nonatomic, retain) NSString *sex;
@property(nonatomic, assign) int age;

  • (id)initWithName:(NSString*)name;

@end

///////////////////////////////////
#import "Person.h"

@implementation Person

  • (id)initWithName:(NSString *)name
    {
    if( (self = [super init]) != nil )
    {
    self.name = name;
    }
    return self;
    }

  • (NSString *)description
    {
    return [NSString stringWithFormat:@"姓名:%@\t性别:%@\n年龄:%d", _name, _sex, _age];
    }

/////////////////////////////////

#import
#import "Person.h"

int main(int argc, const char * argv[])
{

Person *per1 = [[Person alloc] initWithName:@"张三"];
Person *per2 = [[Person alloc] initWithName:@"张三"];
Person *per3 = [[Person alloc] initWithName:@"张三"];

per1.sex = @"男";
per1.age = 230;

NSLog(@"%@", per2);     //输出正常
NSMutableArray *array = [NSMutableArray arrayWithObjects:per1,per2, per3, nil];
NSLog(@"%@", array);        //输出不正常

return 0;

}

求大神解救!!!

3个回答

linshaolie
linshaolie   2014.08.28 16:48

输出结果:

2014-08-28 16:28:57.384 NSLogTest[1676:303] 姓名:张三 性别:(null)
年龄:0
2014-08-28 16:28:57.397 NSLogTest1676:303\n\U5e74\U9f84\Uff1a0",
"\U59d3\U540d\Uff1a\U5f20\U4e09\t\U6027\U522b\Uff1a(null)\n\U5e74\U9f84\Uff1a0"
)
Program ended with exit code: 0

lihaixyz
lihaixyz   2015.07.31 09:13

把array转成nsstring试试看

testcs_dn
testcs_dn   Rxr 2015.01.23 10:28

Product->Edit Schema->info->Debugger把LLDB修改成GDB就可以了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
字符串转换成UTF8编码
在使用网络GET请求时,一般要先将url中的汉字进行encode成UTF8格式的编码,否则在使用时可能报告网址不存在的错误,这时就需要进行转换。
6.将NSString转换成UTF8编码的NSString
在使用网络地址时,一般要先将url进行encode成UTF8格式的编码,否则在使用时可能报告网址不存在的错误,这时就需要进行转换。
oc unicode转换成中文
遇到了unicode如何转换成中文的问题,还是要自己记录下,留着备用 + (NSString *)replaceUnicode:(NSString *)unicodeStr { NSString *tempStr1 = [unicodeStr stringByReplacingOccurrencesOfString:@"\\u" withString:@
js中把中文字符转换成Utf8编码
调用EncodeUtf8(s1)方法即可~返回值就是编码后的 //--------把中文字符转换成Utf8编码------------------------// function EncodeUtf8(s1) { var s = escape(s1); var sa = s.split("%"); var retV =""; if(
将汉字转换成UTF8编码的URLEncode
google搜索表单接收的是UTF8编码数据,如果直接在地址栏上输入http://www.google.com/search?hl=zh-CN&q=griefforyou的程序人生 ,后面的汉字会变成乱码正确的方法是将汉字转换成UTF8编码的URL Encode代码如:http://www.google.com/search?hl=zh-CN&q=griefforyou%E7%9A%84%E7
把中文字符转换成Utf8编码
//--------把中文字符转换成Utf8编码------------------------// function EncodeUtf8(s1)  {      var s = escape(s1);      var sa = s.split("%");      var retV ="";      if(sa[0] != "")      {         retV = sa[0]; 
中文文件名转换为UTF8编码的方法.
    /**     * 将文件名中的汉字转为UTF8编码的串,以便下载时能正确显示另存的文件名.     * @param s 原文件名     * @return 重新编码后的文件名     */    public static String toUtf8String(String s) { StringBuffer sb = new StringBuffer(); for (int i=
iOS开发笔记之UTF8编码
今天博主有一个字符转码的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.以下是个人的总结,有需要的可以借鉴下: ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是25
java中unicode编码和utf8编码相互转换
1,在开发中经常会遇见有些编码使用到unicode编码的,而与我们通常使用的utf8编码不一致2,代码 /** * <p>转为unicode 编码<p> * * @param str * @return unicodeString */ public static String encode(String str) { Str
[iOS]把字符串汉字转换成UTF-8编码
ASCII码相信很熟悉了,只是自己一直都记不住基本规律,有时候用起来十分不爽。 ASCII,共7位,表示128个字符,一般都在前面加0补全8位形成一个Bit。0~31以及127为控制字符,不能打印;32为空格;48(HEX: 0x30)为0;65(HEX: 0x41)为A;97(HEX: 0x61)为a。 GB2312:ANSI编码中的一种,对ASNI编码最初始的ASCII