求修复阿拉伯语单词显示异常的Python代码(arabic-reshaper无效)
解决阿拉伯语字符串显示问题的代码方案
你的输入字符串"ﻕﺎﻧﻮﻧ"是阿拉伯语字符的孤立形态且顺序反转导致显示错误,正确的处理需要结合字符反转、形态重塑和方向调整,以下是可行的Python代码:
步骤1:安装依赖库
首先安装需要的两个库:
pip install arabic-reshaper python-bidi
步骤2:处理代码
import arabic_reshaper from bidi.algorithm import get_display # 输入的错误字符串 wrong_string = "ﻕﺎﻧﻮﻧ" # 第一步:反转字符串(输入是按从左到右顺序排列的RTL字符,反转后恢复正确顺序) reversed_string = wrong_string[::-1] # 第二步:用arabic-reshaper重塑字符,转换为符合书写规则的连写形态 reshaped_string = arabic_reshaper.reshape(reversed_string) # 第三步:调整显示方向,确保阿拉伯语按从右到左规则正确渲染 correct_string = get_display(reshaped_string) print(correct_string) # 输出:قانون
代码说明
- 反转字符串:阿拉伯语是从右到左书写的,你的输入将正确字符的顺序反向拆分,反转后才能恢复字符的正确逻辑顺序。
- arabic-reshaper:负责把孤立形态的阿拉伯语字符,转换为符合书写规范的连写/适配形态。
- python-bidi:处理文本的双向显示规则,确保最终字符串按阿拉伯语的方向正确显示。
内容的提问来源于stack exchange,提问作者Ahmad Almousa
相关产品推荐
相关产品推荐

