2

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

稍微详细一点:

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

NSString *等式 = @"x\u00B2 + y\u00B2 = z\u00B2"

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

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

4

4 回答 4

4

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

于 2009-05-14T00:02:55.190 回答
0

经过大约一天的试验后,我偶然使用了 OS X 字符调色板。这工作得很好,虽然有点乏味....我仍然想发现如何将代码作为文本嵌入到 plist 中。

于 2009-05-13T17:04:44.747 回答
0

似乎不适用于更长的 unicode

𢌾

plist的标题:

<?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
     3 <plist version="1.0">
于 2010-04-24T18:34:51.553 回答
0

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

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

这意味着无论它们是 UTF-8、UTF-16 还是其他,它们都将被正确加载。

如果您在从 plist 加载时遇到问题,那一定是其他问题。尝试使用:

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

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

如果您对编码感到好奇,可以通过在 Xcode 中打开为文本文件来更改它们(在文件树中右键单击并选择打开为...),然后使用 View->Text->File Encoding 菜单进行更改文件编码(您需要修复 XML 编码以匹配)。

于 2009-05-13T01:33:29.453 回答