【发布时间】:2014-08-09 03:23:07
【问题描述】:
我不确定我的假设是否正确,但我觉得多字节序列的四种长度都可以不同,以说明:
说,多字节编码是UTF-8,我们有字符串"\xc3\xb8 \xe2\x86\x82 e\xcc\x88",UTF-8编码"\u00f8 \u2182 e\u0308", "ø ↂ ë"
这个字符串的长度为:
- 10 字节
- 6 个 unicode 代码点
- 5 个字符
- 6 个屏幕位置(使用等宽字体)(ↂ 占 2 个位置)
1.) 由strlen 返回,2.) 可以通过<wchar.h> 函数确定。
但是有确定 3.) 和 4.) 的可移植方法吗? 我不确定,如果 ↂ 占用两个光标位置是针对该代码点或与所使用的字体相关的字体独立定义的,我觉得“等宽字体”和“某些字符占用多个空格”有些矛盾。至少,在Monospace 中,这个字符确实覆盖了两个光标位置。 Unicode 图表U2150 没有说明光标位置。
最后,任何字符的位置数是否为负数(我的意思是,在从左到右的脚本中,一个字符将光标位置放在左侧,反之亦然)?
【问题讨论】: