2012-10-24 97 views
0

我試圖將UTF8字符保存到字符串並將其打印到標籤。字符串到目標C中的UTF8字符轉換

如果我硬代碼,它工作正常:

NSString *param = @"\uf02e"; 
NSLog(param); 

結果:

2012-10-24 16:09:56.522 i[22996:12c03]  

通過,如果我保存字符爲一個字符串,我不能回去的路上。

NSString *myString = [NSString stringWithFormat:@"%@",[item objectForKey:content]]; 
NSLog(myString); 

結果:

2012-10-24 16:18:47.289 i[23105:12c03] \uf02e 

這個任何解決方案?謝謝。

EDIT

產品一個NSDictionary和[項目objectForKey:內容]是一個字符串。

enter image description here

+0

如何填充[item]數組? –

+0

item是一個NSDictionary,填充了plist文件中的對象。 –

+0

所以在你的plist字符串中實際上是字符串「\ uf02e」本身,而不是相應的unicode字符。修飾符\ u在plist內部的字符串中不起作用。 –

回答

1
NSString *param = @"\uf02e"; 
    NSDictionary* item = [NSDictionary dictionaryWithObject: param forKey: @"key"]; 
    NSString *myString = [NSString stringWithFormat:@"%@",[item objectForKey: @"key"]]; 
    NSLog(myString); 

工作正常,我。所以錯誤在於你插入到字典中的值。

+0

我附上了一張圖片。該值作爲字符串正確保存在plist文件中。您的解決方案有效,但不適用我的代碼。 –

+0

如何從plist中加載它? – Max

+0

+1 @CarloS您存儲在字典中的值看起來像字符串「\ uf02e」(即您要提供給編譯器的轉義序列)。當字符串像這樣加載時,這不起作用,因爲編譯器不會以這種方式解釋轉義字符。事實上,編譯器根本看不到字符串,是不是。 – trojanfoe