当前位置:  开发笔记 > 编程语言 > 正文

包裹在pango的词用混杂的脚本

如何解决《包裹在pango的词用混杂的脚本》经验,为你挑选了1个好方法。

我有一个使用pango的文本框实现.如果我把一个以从右到左的脚本开头的字符串,后跟一个空格,然后是从左到右的脚本中的单词,那么pango使用的自动翻译就会搞砸(使用PANGO_WRAP_WORD_CHAR).对于字符串العربيةENGLISH,我得到以下内容:

不好的词包装

如果我U+200F在空格后添加unicode字符,那么我得到预期的自动换行:

预期自动换行

另外,如果我用印地语替换上面的阿拉伯语脚本(从左到右,就像它旁边的英语​​一样),那么我仍然会遇到问题,所以它似乎不是严格的从左到右,对吧到左边的东西.在印地语的情况下,我放入一个hack,0x200E在空格后插入一个解决问题的空间.

这是pango中的一个错误吗?是否有我可以尝试的解决方案,足以解决问题而不打破其他情况?目前我正在使用基于字符串中前一个强定向字符的方向在每个空格中插入0x200E或插入0x200F,但我不确定是否存在某些字符串会导致问题.

更新:我能够使用gedit在Ubuntu 12.04上重现此问题(启用文本环绕并且启用两行设置时不执行拆分).我简单地输入Hello world一遍又一遍,直到它包裹好几次,然后替换的所有实例world????????,一切晕倒一行.



1> BigOther..:

这些符号是左右标记U+200FU+200E左右标记.S:

在每个英文文本和阿拉伯文本之间,放置一个左右标记

在每个阿拉伯文本和英文文本之间,放置一个左移标记

这是一个错误,因为Pango应该自动查看文本但是Pango不这样做,你应该手动完成.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有