我创建了一个函数,它获取一个编码的字符串(可能是UTF-16不确定),它代表数学中的'属于',这个符号由两个unicde字符u + f0ce和u + f020组成。但是当我向用户显示字符串时我得到:“”这只是unicode的第一部分。 该计划如下:
String s = StringEscapeUtils.unescapeJava("\\uF0CE\\uF020");
以上代码仅适用于单个unicode,例如\ uF0CE但不能合并。你能帮忙找到我在这里做错了什么吗? 谢谢
答案 0 :(得分:4)
U + F0CE和U + F020是两个专用字符。 Unicode中没有标准含义,但无论它们是什么意思,它们都是分开的。您需要修复数据,或至少找出这些字符的来源含义。
答案 1 :(得分:2)
根据此页面http://www.alanwood.net/unicode/private_use_area.html,这些代码点是私有的,并且只定义了Microsoft的Symbol字体:
61646F0CE符号
(看起来像∈)
因此,您可能会从最初使用Symbol字体生成的内容中获取狡猾的数据。您应该将代码点映射到此处http://www.fileformat.info/info/unicode/block/mathematical_operators/list.htm的现代unicode等效项(例如F0CE - > U + 2208)
答案 2 :(得分:0)
谢谢大家的帮助。我找到了问题的解决方案。私人使用字符是adobe的Symbol字体的一部分。要将这些符号映射到unicode,请使用此unicode页面中给出的表。希望这可以帮助。 任何高级成员(有足够的声誉来编辑讨论主题)都可以将帖子的标题更改为“如何将符号字体中的私人使用字符(由adobe引入)映射到标准的unicode符号”?它可能会帮助别人。 感谢