2014-02-17 37 views
0

在一個Rails應用程序,我有類型的一列的行內的以下Unicode字符:文本是SQLite的表示Unicode作爲一個美國國旗

\U0001F64F\U0001F1FA\U0001F1F8- 

當I輸出這在軌道控制檯通過調用模塊名稱:Module.find(ID).text區段

它打印出它作爲一個小型美國國旗:

enter image description here

誰能解釋一下什麼是happenin g在這裏?我讀過SQLite使用UTF-8和UTF-16編碼文本,但我不確定這是由於SQLite還是其他。

+0

**'Merica !!! ** – tyler

+0

'SELECT hex(MyColumn)FROM MyTable'的輸出是什麼?這是正確的UTF-8? –

回答

1

本文中的第一個字符是U + 1F64F PERSONED HANDS人,根據Unicode代碼表中的註釋「可以表示悲傷或遺憾」和「可表示哀悼」。你不會在大多數字體中找到它,所以在渲染時,你可能會看到一個小矩形或沒有。

接下來的兩個是U + 1F1FA區域指示符符號字母U和U + 1F1F8區域指示符符號字母S.相關code chart對這樣的字符說:「這些字符可以成對使用來表示區域代碼。在一些表情符號實現中,可以通過替代手段識別和顯示某些對;例如,一個實現可能會識別F + R,並用代表法國國旗的符號顯示此組合。「

因此,呈現軟件需要將它們顯示爲字符對」US「或顯示標誌性的美國國旗。大多數程序不會執行其中任何一項,但會將它們視爲未知數據。