我不確定我的假設是否正確,但我覺得多字節序列的所有四種長度都可以不同,以說明:以字節爲單位的多字節序列的長度(unicode)代碼點,字符和光標位置
就是說,多字節編碼爲UTF-8,和我們有字符串"\xc3\xb8 \xe2\x86\x82 e\xcc\x88"
,的"\u00f8 \u2182 e\u0308"
「øↂë」
此字符串的UTF-8編碼的長度爲:
- 10字節
- 6的unicode碼點
- 5個字符
- 6屏幕位置(具有寬字體)(ↂ取2個位置)
1)由strlen
和2返回)可以被確定與<wchar.h>
功能。
但是有沒有一種確定3)和4)的便攜方式? 我不確定,如果ↂ對兩個光標位置定義爲字體無關的代碼點或有關正在使用的字體,我覺得「等寬字體」和「某些字符佔用多個空間」有點矛盾。至少在Monospace這個字符確實包含了兩個光標位置。 Unicode圖表U2150沒有提及光標位置。
最後,對於任何角色(我的意思是一個角色將光標位置左移到左腳本或反之亦然)的位置數量是多少?