1
這是一個比Unicode問題更多的MBCS問題。我需要創建一個API,它返回一個結構體列表,每個實例擁有一個Unicode字符作爲其成員之一。這是在.NET中,所以你會認爲我想要UTF-16,但對於亞洲人來說,需要兩個字符。返回Unicode字符時的最佳做法是什麼?如何在API中表示Unicode字符
- 使用2個UTF-16字符的數組 - 測試第一個字符以查看它是否是代理,有一個計數?
- 忽略代理問題,讓它給調用者找出實際的字形編碼跨度結構?
- 使用字符串,所以我不在乎它是一個或兩個字符的長度?
- 使用UTF-32
什麼人通常爲UTF-8呢?我猜他們從不處理單個字符,並且所有內容都保存在一個字符串中(例如,在字符串中搜索字符實際上是通過查找子字符串來完成的)。也許這是我的C++程序員,但是一個字符串看起來很沉重。
我想我會去做#3。別人做了什麼?
起初我確信自己的口音不會是一個問題,但我認爲他們確實是。我假設會有一個規範化表單,它可以使它們都符合單個代碼點。在我的情況下,我想將字形+任意數量的重音作爲單個「字符」處理。 – 2010-02-19 03:57:21
是的,只有一些重音字符可以放入單個碼點,通常是來自前Unicode字符集的碼字。 – 2010-02-19 20:32:04