2013-10-10 206 views
4

兩個字符的示例:U + 22FF,U + 23BA ...以及其他許多字符。iOS字體無法正確顯示所有Unicode字符

這是我誤解爲iOS的編碼層嗎?就像在某些時候,它不再能正確顯示超過22B的代碼...?

我在NSString中捕獲這個,並試圖簡單地更新文本字段。類似於

NSString *test = @"\u23ba"; 
[displayText setText:test]; 

這將顯示標準類型錯誤,如帶有問號框的盒子或只是一個盒子(取決於字體)。

有沒有辦法擴展iOS的unicode選項?因爲這些可以顯示在我的Mac上。或者,是我唯一的選擇NSAttributableString路由的一些變體?

+0

是23ba是否是正確的Unicode? http://www.fileformat.info/info/unicode/char/23ba/index.htm –

+0

make \ u23BA(B n A是大寫),看看你得到了什麼...... –

+0

@FahimParkar很遺憾,這並沒有改變任何東西。 – Meshach

回答

1

U + 22FF和U + 23BA是有效的代碼點(分配給字符)。但是它們僅由幾種字體支持。所以你應該首先檢查哪些字體正在被使用或可用。例如,Asana-Math,Cambria,Cambria Math,Code2000,DejaVu Sans(奇怪的是,只有粗斜體字體),FreeSerif,GNU Unifont,Quivira,Segoe UI Symbol,STIXMath,STX等都包含U + 22FF。 Sun-ExtA,Symbola,XITS,XITSMath。 U + 23BA包含在Cambria,Cambria Math,Code2000,FreeMono,FreeSerif,GNU Unifont,Quivira,Segoe UI Symbol,Sun-ExtA,Symbola中。其中許多是免費字體。印刷質量差異很大。 Cambria字體和Segoe UI Symbol是商業產品,隨附一些Microsoft產品。可能還有其他一些字體可以涵蓋這些角色,但並不是很多(Everson Mono,我想現在還沒有)。

+0

這就是我的想法,但是,即使系統字體似乎也不能顯示這些類型的字符。是否有一個「已知」包含更大比例的字符? – Meshach

+0

添加了一些特定的字體信息 –

+0

嗯,你是完全正確的!如果我想使用一些unicode字符,或者沿着歸屬的字符串兔子洞行進,它看起來像是卡住了數量非常有限的字體。 – Meshach