保存前编码 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 为您提供经过人工修改的数据视图。