我有一個NSDictionary,其內容是我從一個.plist中讀取的,它是用utf-8編碼的。Objective-C,utf-8中的NSDictionary編碼
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ABACİ</key>
<array>
<string>ABALİ</string>
<string>APACİ</string>
<string>ARAÇİ</string>
</array>
等
無論如何,問題是,當我的NSLog這個字典到控制檯的內容,我得到這樣
"K\U00d6PEK"
這個結果被記錄另一個條目的版本,不包含普通的拉丁英文字符。我嘗試使用的字符是UTF-8編碼。
然而,當我從一個文本文件
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"words_tr" ofType:@"txt"];
NSString *contentString = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];
_wordStack = [[NSMutableArray alloc]initWithArray:[contentString componentsSeparatedByString:@","]];
讀取陣列的內容這完美的作品。我也想從屬性列表中讀取相同的內容。我如何獲得以UTF-8編碼爲NSDictionary的結果?
這不是我想要的。我想通過適當的編碼訪問NSDictionary,並將鍵與用戶輸入進行比較。那NSString只是一個例子。 –
好吧,我對你的問題的猜測是,NSLog通常不支持UTF8字符串。所以它顯示不正確,但是你的字符串是正確的。通過將字符串分配給UILabel更容易測試。 – Jirapong
這確實是對的。我不知道NSLog不支持UTF8。謝謝!你知道是否有任何支持?我查看了喜好,但我沒有運氣。 –