2012-06-15 62 views
0

我已經創建了一個函數,它獲得一個在數學中代表'屬於'的編碼字符串(可能UTF-16不確定),該符號由兩個unicde字符u + f0ce和u + f020組成。但是當向用戶顯示字符串時,我得到:「」,它只是unicode的第一部分。 該方案是如下:如何將符號字體中的私人使用字符(由adobe引入)映射到標準的unicode符號?

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

上面的代碼適用於像\ uF0CE單個Unicode僅但不結合。你能幫我找到我在這裏做錯了什麼嗎? 謝謝

+0

你可以看到所有[數學符號(http://en.wikipedia.org/wiki/Mathematical_operators_and_symbols_in_Unicode)。在那裏沒有看到你的角色。 – anubhava

+0

我想你們是對的,我需要修正我的意見。我從XWPFDocument.XWPFparagraph.XWPFRun獲得輸入,所以我想我應該探索更多關於XWPFdocument。謝謝你們 –

回答

0

感謝各位的幫助。我找到了解決問題的辦法。私人使用字符是Adobe字體的一部分,由adobe。要將這些符號映射到unicode,請使用此unicode頁面中給出的表格。希望這可以幫助。 可以在任何的資深人士(有足夠的聲譽編輯討論的主題)的請修改後,以類似「的符號字體(由Adobe推出),以標準Unicode符號如何映射私用字符」的稱號?它可能會幫助其他人。 感謝

4

U + F0CE和U + F020是兩個私人使用的字符。它們在Unicode中沒有標準含義,但無論它們是什麼意思,它們是分開的。你需要修正你的數據,或者至少找出這些字符的來源。

+0

我在unicode的專家,但心不是第一部分,替代和第二部分的領先優勢,在UTF-16使用? –

+1

需要兩個'char'的字符必須以'\ uD800'開頭到'\ uDBFF' http://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B10000_to_U.2B10FFFF –

+1

主代理的範圍是0xD800。 .0xDBFF和跟蹤代理的範圍是0xDC00..0xDFFF。你有什麼不是代理人。 – prosfilaes

2

根據http://www.alanwood.net/unicode/private_use_area.html這個網頁,這些代碼點是私有的,並只定義微軟的符號字體:

61646 F0CE符號

(貌似∈)

所以你被供應可怕的數據,可能來自最初使用Symbol字體生成的東西。您應該將代碼點映射到現代的同義詞http://www.fileformat.info/info/unicode/block/mathematical_operators/list.htm(例如F0CE - > U + 2208)

+0

我的功能輸入不在我的控制中,所以我猜我的功能輸入是錯誤的? –

相關問題