2017-08-28 37 views

回答

3

你無法轉換到一個char。該代碼點超出了可以用UTF-16表示爲單個16位元素的範圍。相反,它由代理對,兩個char元素表示。在德爾福將它表示爲字符串

#$D83D#$DCDB 

因爲可以通過此頁面可以看出端倪:http://www.fileformat.info/info/unicode/char/1f4db/index.htm

在實踐中,我認爲這將是簡單的字符粘貼到你的源代碼,一個字符串內,並將源代碼存儲爲UTF-8編碼。 IDE將自動提示。這是代表它作爲

'' 

在評論,你說清楚,要解析的形式的任意文本U + XXXX。提取數值並將其轉換爲整數。然後通過TCharHelper.ConvertFromUtf32傳遞它。

+0

感謝大衛,確定,但如何ü轉換+ XXX爲Unicode字符(或字符串)?我只有字符串文字u + xxxx,我需要轉換 – andrey

+1

然後閱讀utf-16 spec規範。將代碼點值解析爲一個整數。如果它可以表示爲單個字符,則很簡單,否則請遵循代理對規則。 –

+0

我發現,這是Tcharacter.ConvertFromUtf32 :)它返回一個字符串 – andrey

相關問題