作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用 reportlab 生成报告,报告语言是阿拉伯语。但问题是 reportlab 不支持 BIDI(双向)显示,因为缺少 BIDI Algorithm Python 中的支持。经过大量谷歌搜索后,我发现 Gnome 周围有一个包装器 Fribidi称为 PyFribidi .但它仅在 Linux 上编译和运行,我尝试使用 mingwin 在 Windows 上构建它,但编译失败,因为找不到很多 linux 库。
我的问题是,在 Windows 上运行的 Python 中是否有任何 Unicode 双向算法实现?
谢谢。
最佳答案
Python BiDi是一个很棒的 BiDi 算法实现,但它只支持双向(原样)而不修复 contextual form阿拉伯文字,要解决上下文形式问题,您应该将 python-bidi 模块与一个名为 python-arabic-reshaper 的阿拉伯语整形器库一起使用.
示例:(来自 => http://mpcabd.igeex.biz/python-arabic-text-reshaper/)
import arabic_reshaper
from bidi.algorithm import get_display
#...
reshaped_text = arabic_reshaper.reshape(u'اللغة العربية رائعة')
bidi_text = get_display(reshaped_text)
pass_arabic_text_to_render(bidi_text)
#...
它完美地解决了我的问题,并且两个包都是纯 python 实现。
关于python - pyfribidi for windows 或任何其他 bidi 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6137119/
我正在尝试使用 reportlab 生成报告,报告语言是阿拉伯语。但问题是 reportlab 不支持 BIDI(双向)显示,因为缺少 BIDI Algorithm Python 中的支持。经过大量谷
我是一名优秀的程序员,十分优秀!