2013-06-28 32 views
3

我們需要使用用戶生成的密碼進行操作。
我們有密碼包含ä的情況,但是當我們從中創建CFDictionaryRef時,框架將字符更改爲\U00e4使用CFDictionaryCreate和特殊字符創建CFDictionaryRef

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

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

有沒有辦法有\U00e4換成目錄ä

+0

'\ U00e4'是ä的統一代表。究竟是什麼問題? – popctrl

+0

@AnonyLawrence當我進一步使用詞典時,我需要確定一個證書,並且我知道這個句子有ä字符。但是,當我使用decypher方法失敗時,讓我知道這不是正確的密碼 – Frederiek

+0

@Frederiek:也許你可以添加一些代碼,如何進一步使用字典和你得到不需要的輸出。請注意,NSLogging一個字典對所有非A​​SCII字符使用'\ Unnnn'轉義序列,但這應該不重要。 –

回答

1

更可能的是,您的字符串編碼沒有被保存。正如安東尼所說,\U00e4ä。這是UTF-16。在UTF-8中,它將是0xC3 0xA4。 UTF-32? 0x000000E4

您需要將密碼像原始數據的緩衝區一樣對待。進入時 - 確保入口本身是正確的編碼 - 將其粘貼在NSData中並保留在那裏。

+0

是的,你是對的,在深入檢查代碼後,我們發現問題不在那裏。無論如何,感謝您的幫助 – Frederiek