1
我剛開始使用Win32 unicode字符串(UTF-16)。有什麼辦法可以快速獲取字符串中任何特定字符的字節索引,因爲某些字符可能使用四個字節(從我收集的MSDN中讀取的內容)?或者他們都應該被視爲每個字符兩個字節?Win32 UTF-16字符索引
我剛開始使用Win32 unicode字符串(UTF-16)。有什麼辦法可以快速獲取字符串中任何特定字符的字節索引,因爲某些字符可能使用四個字節(從我收集的MSDN中讀取的內容)?或者他們都應該被視爲每個字符兩個字節?Win32 UTF-16字符索引
CharNext()和CharPrev() API可用於在Windows上安全地瀏覽UNICODE字符串。
要獲得UNICODE字符串的第n個字符,請在循環中調用CharNext()。
好吧,我想這將工作正常。謝謝。 – user1364556
由於構圖,某些角色可能會更大。首先,您需要定義「字符」的含義。你的意思是代碼點,或字形或其他? –
我不確定這裏使用的一些術語。在SBCS字符串中,每個字節都是一個「字符」。現在使用UTF,每個2字節可能是一個字符,但可能更多,由於編碼。找出特定角色的索引的唯一方法是從開始角色開始,並一次遍歷一個角色,直到達到目的角色爲止? – user1364556
問題是你想完成什麼?除非你開發一個Unicode算法(你不應該因爲它非常複雜)或者實現一些輸入/輸出方法(比如從零開始實現編輯控件或文本渲染引擎),你甚至不需要擔心「字符」和編碼。 [如果你這樣做,你做錯了什麼。](http://utf8everywhere.org/) – ybungalobill