我有一个使用pango的文本框实现。如果我输入一个以从右到左书写的单词开头,后跟一个空格,再后跟一个从左到右书写的单词的字符串,那么pango使用的单词换行就会出错(使用PANGO_WRAP_WORD_CHAR
)。对于字符串العربية ENGLISH,我得到以下结果:
U+200F
,那么我就会得到期望的换行效果。
此外,如果我用印地语(从左到右,就像旁边的英语)替换上面的阿拉伯文,则仍然会出现问题,因此它似乎不是严格的从左到右或从右到左的问题。 在印地语情况下,我插入了一个hack,在空格后插入0x200E
以解决该问题。这是pango的一个错误吗? 有没有通用的解决方法可以尝试修复问题而不破坏其他情况? 我正在使用的当前解决方法根据字符串中前一个强制定向字符的方向,在每个空格之后插入
0x200E
或0x200F
,但我不确定是否会对某些字符串造成问题。更新:我能够在启用了gedit(启用了启用文本换行和不将单词分成两行设置)的Ubuntu 12.04上重现此问题。 我只需反复输入
Hello world
直到它折叠几次,然后将所有world
实例替换为पहुंचगया
,然后所有内容都折叠到一行。