前言
日常開發(fā)中,有時(shí)候會遇到特殊字符的顯示,比如數(shù)學(xué)符號、羅馬字符、特殊單位等等。常見的字符可以直接輸入,但是比如次冪、微分、積分、化學(xué)方程式等等無法直接輸入。
目前string.xml中支持直接輸入外,還可以使用ASCII碼來表示。但是ASCII碼常用的也就幾百個(gè)字符,遠(yuǎn)遠(yuǎn)無法滿足特殊字符的需求。在翻閱了Android官方關(guān)于String的說明后,發(fā)現(xiàn)String還支持Unicode碼,所以可以考慮使用Unicode碼來展示特殊字符。
Unicode編碼則是采用雙字節(jié)16位來進(jìn)行編號,可編65536字符,基本上包含了世界上所有的語言字符,它也就成為了全世界一種通用的編碼,而且用十六進(jìn)制4位表示一個(gè)編碼,非常簡結(jié)直觀,為大多數(shù)開發(fā)者所接受,特別是十六進(jìn)制編碼后,可以解決漢字在js再編碼過程中出現(xiàn)亂碼問題,提高解釋速度,我們建議在js腳本中使用十六進(jìn)制unicode編碼。
應(yīng)用
在這里舉幾個(gè)例子來展示:
- 次冪
string.xml
<string name="unit_ten_12_l" formatted="false">×10\u00B9\u00B2/L</string>
表示為 x10^12/L 。 即10的12次方每升,如下所示

-
化學(xué)方程式
二氧化碳 一般表示為CO2

在代碼中如下表示
string.xml
<string name="co2" formatted="false">CO\u2082</string>
預(yù)覽如下所示

-
段落小標(biāo)題
段落為了增加層次,會添加小標(biāo)題來區(qū)分,這種要么切圖,要么使用drawable實(shí)現(xiàn)
string.xml
<string name="title_01" formatted="false">\u2780</string>
預(yù)覽如下所示

-
羅馬數(shù)字
有時(shí)候會使用羅馬數(shù)字來作為段落標(biāo)題,表示123,顯示為 Ⅰ、Ⅱ、Ⅲ
string.xml
<string name="title_01" formatted="false">\u2160 \u2161 \u2162 \u2163</string>
預(yù)覽如下所示

總結(jié)
這里只是舉了幾個(gè)例子來展示,Unicode碼有6萬多個(gè)字符,幾乎可以包含世界上的常用語言和文字,還有更多的使用場景等待我們?nèi)グl(fā)現(xiàn)。