读取plf utf-8值为utf-16

时间:2009-05-12 15:07:23

标签: iphone objective-c unicode utf-8 utf-16

我正在开发一款需要显示上标和下标的iphone应用。我正在使用一个选择器从plist读取数据,但unicode值没有在pickerview中正确显示。下标和上标未被识别。我假设这是由于plist的编码为utf-8,所以问题是如何将plf字符串编码从utf-8转换为utf-16?

再详细说明一下:

如果我这样做,它至少在文本字段中正确显示:

NSString * equation = @“x \ u00B2 + y \ u00B2 = z \ u00B2”

但是,如果我在plist中定义相同的字符串并尝试将其读入并将其分配给字符串并将其显示在pickerview上,则只显示编码而不是上标。

@Matt:感谢您的建议,unicode正在被转义,即\ u00B2 => \ u00B2。谷歌搜索“plists中的转义值”没有返回任何有用的结果,我无法使用键盘cmd-ctrl-shift- +工作。任何进一步的建议将不胜感激!!

4 个答案:

答案 0 :(得分:4)

\ u变体仅在呈现给C编译器时才有效。对于UTF-8,如果你真的想输入字符代码而不是简单地输入它们(字符调色板的伴侣是键盘查看器,当你按下修改键时它会更新,这样你可以用那种方式搜索特定的字符),然后你必须使用XML实体,即²

答案 1 :(得分:0)

Plist文件自动嵌入自己的编码。即:

<?xml version="1.0" encoding="UTF-8"?>

这意味着无论是UTF-8,UTF-16还是其他,都可以正确加载。

如果您在从plist加载时遇到问题,那么它必须是其他内容。尝试使用:

NSLog(@"%@", [[[NSDictionary alloc] initWithContentsOfFile:@"/path/to/plist"] autorelease]);

输出整个plist作为查找问题的起点。

如果您对编码感到好奇,可以通过在Xcode中打开文本文件(右键单击文件树并选择打开为...)然后使用视图 - &gt;文本 - &gt;来更改它们。文件编码菜单更改文件编码(您需要修复XML编码才能匹配)。

答案 2 :(得分:0)

在大约一天的实验过程中,我偶然使用了OS X角色。虽然有点乏味,但效果很好....我仍然想要发现如何将代码作为文本嵌入到plist中。

答案 3 :(得分:0)