如何将符号字体(由 Adobe 引入)中的专用字符映射到标准 unicode 符号



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

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

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

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

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

 61646 F0CE 符号

(看起来像∈)

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

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

最新更新