保存前编码NSArray

时间:2015-03-22 10:07:20

标签: ios objective-c nsmutablearray nsarray nsdata

我的数据库中有一个带有重音é的字符串,当我把它带到那里并将其保存在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' 到字符串é,然后再次保存到数据库!怎么做?

1 个答案:

答案 0 :(得分:1)

你实际上没有问题。您的é\u00e9是相同的,您可以将它们视为以不同方式描述。

有关éthis page。

假设您发送编码数组的框架/系统以合理的方式使用它(即考虑unicode内容),那么你会没事的。您使用NSKeyedArchiverNSArray进行编码这一事实表明情况确实如此。

基本上,请注意NSLog和UI显示是不同的东西。 NSLog为您提供了非常原始的数据视图,而UI则为您提供了人工修改的数据视图。