使用CFDictionaryCreate和特殊字符创建CFDictionaryRef

时间:2013-06-28 14:43:56

标签: iphone ios objective-c ipad special-characters

我们需要使用用户生成的密码来做某事 我们遇到密码包含ä的情况,但是当我们从中创建CFDictionaryRef时,框架会将字符更改为\U00e4

const void *keys[] =   { somObj};
const void *values[] = { (CFStringRef)[passwords objectAtIndex:i] };

CFDictionaryRef optionsDictionary = CFDictionaryCreate(NULL, keys, values, 1, NULL, NULL);

是否可以在目录中将\U00e4替换为ä

1 个答案:

答案 0 :(得分:1)

更有可能的是,您的字符串编码未被保留。正如安东尼所说,\U00e4 ä。那是UTF-16。在UTF-8中,它是0xC3 0xA4。 UTF-32? 0x000000E4

您需要将密码视为原始数据的缓冲区。在进入时 - 确保条目本身具有正确的编码 - 将其粘贴在NSData中并保留在那里。