我们需要使用用户生成的密码进行处理。
在某些情况下,密码包含一个ä
,但是当我们从中创建一个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中并保留在此处。