0

我创建了一个函数,它获取一个编码字符串(可能是 UTF-16 不确定),它在数学中表示“属于”,这个符号由两个 unicde 字符 u+f0ce 和 u+f020 组成。但是当向用户显示字符串时,我得到:“”,这只是 unicode 的第一部分。程序如下:

String s = StringEscapeUtils.unescapeJava("\\uF0CE\\uF020");

上面的代码仅适用于像 \uF0CE 这样的单个 unicode,但不能组合使用。你能帮忙找出我在这里做错了什么吗?谢谢

4

3 回答 3

4

U+F0CE 和 U+F020 是两个私有字符。在 Unicode 中它们没有标准含义,但无论它们是什么意思,它们都是独立的。您需要修复您的数据,或者至少找出这些字符的来源意味着什么。

于 2012-06-15T08:14:57.273 回答
2

根据此页面http://www.alanwood.net/unicode/private_use_area.html,这些代码点是私有的,并且仅定义了 Microsoft 的 Symbol 字体:

 61646 F0CE 符号

(看起来像 ∈)

因此,您得到的数据不可靠,可能来自最初使用 Symbol 字体生成的数据。您可能应该从这里将代码点映射到现代 unicode 等效项http://www.fileformat.info/info/unicode/block/mathematical_operators/list.htm (例如 F0CE -> U+2208)

于 2012-06-15T08:20:21.760 回答
0

感谢大家的帮助。我找到了解决问题的方法。私人使用字符是 adobe 的 Symbol 字体的一部分。要将这些符号映射到 unicode,请使用此unicode页面中给出的表格。希望这可以帮助。任何高级成员(有足够的声誉来编辑讨论的主题)可以将帖子的标题更改为“如何将符号字体(由 adobe 引入)中的私人使用字符映射到标准 unicode 符号”之类的内容?它可能会帮助其他人。谢谢

于 2012-06-25T11:31:32.833 回答