保存前编码 NSArray
Encode NSArray before save
我的数据库中有一个带重音符 é 的字符串,当我从那里获取这个字符串并将其保存在 NSArray
中而不是他保存字符串 é 它保存 '\U00e9'.
如果我将这个字符串放在 UITextField 中,系统会将该字符串放置在重音符号中。但是这段代码有问题!我需要将此字符串发送到另一个设备(使用框架),为此我执行以下操作:
NSData *data = [[NSData alloc] init];
data = [NSKeyedArchiver archivedDataWithRootObject:array];//The array contain the string in database
NSArray *arrayReceived = [NSKeyedUnarchiver unarchiveObjectWithData:data];
在 NSArray
中有字符串 \U00e9,但是我需要将这个字符串保存在我的数据库中,为此我必须找到一些方法来转换字符串 '\U00e9' 到字符串 é 再存入数据库之前!怎么做?
你实际上没有问题。你的 é
和 \u00e9
是一回事,你可以把它们想象成不同的描述方式。
有关 é
的 unicode 说明,请参见 this page。
假设您发送编码数组的框架/系统以合理的方式使用它(即考虑 unicode 内容),那么您会没事的。您使用 NSKeyedArchiver
编码 NSArray
的事实表明确实如此。
基本上,请注意 NSLog
和 UI 显示是完全不同的东西。 NSLog
为您提供非常原始的数据视图,而 UI 为您提供经过人工修改的数据视图。
我的数据库中有一个带重音符 é 的字符串,当我从那里获取这个字符串并将其保存在 NSArray
中而不是他保存字符串 é 它保存 '\U00e9'.
如果我将这个字符串放在 UITextField 中,系统会将该字符串放置在重音符号中。但是这段代码有问题!我需要将此字符串发送到另一个设备(使用框架),为此我执行以下操作:
NSData *data = [[NSData alloc] init];
data = [NSKeyedArchiver archivedDataWithRootObject:array];//The array contain the string in database
NSArray *arrayReceived = [NSKeyedUnarchiver unarchiveObjectWithData:data];
在 NSArray
中有字符串 \U00e9,但是我需要将这个字符串保存在我的数据库中,为此我必须找到一些方法来转换字符串 '\U00e9' 到字符串 é 再存入数据库之前!怎么做?
你实际上没有问题。你的 é
和 \u00e9
是一回事,你可以把它们想象成不同的描述方式。
有关 é
的 unicode 说明,请参见 this page。
假设您发送编码数组的框架/系统以合理的方式使用它(即考虑 unicode 内容),那么您会没事的。您使用 NSKeyedArchiver
编码 NSArray
的事实表明确实如此。
基本上,请注意 NSLog
和 UI 显示是完全不同的东西。 NSLog
为您提供非常原始的数据视图,而 UI 为您提供经过人工修改的数据视图。