我们需要使用用户生成的密码进行处理。
在某些情况下,密码包含一个ä,但是当我们从中创建一个CFDictionaryRef时,框架会将字符更改为\U00e4

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

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

有没有办法用目录中的\U00e4替换ä

最佳答案

很有可能不会保留您的字符串编码。正如Anthony所说,\U00e4 ä。那就是UTF-16。在UTF-8中,它是0xC3 0xA4。 UTF-32? 0x000000E4

您需要将密码视为原始数据的缓冲区。输入后-确保输入本身的编码正确-将其粘贴在NSData中并保留在此处。

10-01 16:57