2

我有 NSDictionary,我从 .plist 中读取的内容以 utf-8 编码。

<?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:@","]];

这完美地工作。我也想从属性列表中读取数据。如何获取 NSDictionary 的 UTF-8 编码结果?

4

2 回答 2

1

你试过用这个来 NSLog 吗?

NSLog(@"%@", [NSString stringWithCString:contentString encoding:NSUTF8StringEncoding]);
于 2012-05-30T07:17:36.117 回答
1
+(NSString*)utf8toNString:(NSString*)str{
    NSString* strT= [str stringByReplacingOccurrencesOfString:@"\\U" withString:@"\\u"];
    //NSString *strT = [strTemp mutableCopy];
    CFStringRef transform = CFSTR("Any-Hex/Java");
    CFStringTransform((__bridge CFMutableStringRef)strT, NULL, transform, YES);

    return strT;
}
于 2015-05-18T10:37:02.603 回答