字库交流QQ:2229691219

阿拉伯语属阿非罗-亚细亚语系(闪含语系)闪语族。词一般由3个原生字母构成,可添加前缀,后缀,或使词的内部音位发生变化和插入其它音位构成新词。

阿拉伯共有28个字母,都是辅音字母,每个字母只代表一个辅音音素,每个音素只用一个字母表示。对应unicode:0x060C--0x06FE。

阿拉伯语共有8个元音,3个短元音,3个长元音和两个半元音,短元音是用加在辅音字母上面或下面的符号来表示。这些符号称为“动符”;长元音和软音是用动符和3个辅音字母来表示的。阿拉伯语发音符号共有12个(叠音符号不算在内)。普通书报上不加符号。

阿拉伯文字在伊斯兰教的影响下流传很广。波斯文,乌尔都文以及我国的新疆的维吾尔文等多种文字采用阿拉伯字母。阿拉伯文的字母没有大写和小写的区分,但有印刷体和书写体的区别,而且除去د ذ ر ز و五个字母以外,其他23个字母都可以和后面的字母连写,而且因其在词头,词中和词尾的位置不同,字形也有所变化。阿拉伯文字的书写方向和中文不同,它是自右向左横着写。因此,阿拉伯文的书籍和本子都是右开本的。

在换行的时候,一般的,我们需要判断一下是否是整个词,进行整个词的换行,而不能把词拆成两个部分。阿拉伯文里面的数字仍然采用从左往右的显示方式。

STM32驱动LED屏显示如下:

规则1。
阿拉伯文变形:
根据上面分法,分成first,last,middle,alone,并根据判断是否是词的前连(前面字符在集合1中),后连(后面字符在集合2中),中间(即前后连,前面字符在集合1中,后面字符在集合2中)或单独一个词,进行变形。
据分析,给出变形的数组:分别对应上面的情况。对于其它不在数组中的,其变形和自身相同。

const WORD Arbic_Position[][4]=  // first, last, middle, alone

{

{ 0xfe80, 0xfe80, 0xfe80, 0xfe80},    // 0x621

{ 0xfe82, 0xfe81, 0xfe82, 0xfe81},

{ 0xfe84, 0xfe83, 0xfe84, 0xfe83},

{ 0xfe86, 0xfe85, 0xfe86, 0xfe85},

{ 0xfe88, 0xfe87, 0xfe88, 0xfe87},

{ 0xfe8a, 0xfe8b, 0xfe8c, 0xfe89},

{ 0xfe8e, 0xfe8d, 0xfe8e, 0xfe8d},

{ 0xfe90, 0xfe91, 0xfe92, 0xfe8f},   // 0x628

{ 0xfe94, 0xfe93, 0xfe93, 0xfe93},

{ 0xfe96, 0xfe97, 0xfe98, 0xfe95},   // 0x62A

{ 0xfe9a, 0xfe9b, 0xfe9c, 0xfe99},

{ 0xfe9e, 0xfe9f, 0xfea0, 0xfe9d},

{ 0xfea2, 0xfea3, 0xfea4, 0xfea1},

{ 0xfea6, 0xfea7, 0xfea8, 0xfea5},

{ 0xfeaa, 0xfea9, 0xfeaa, 0xfea9},

{ 0xfeac, 0xfeab, 0xfeac, 0xfeab},   // 0x630

{ 0xfeae, 0xfead, 0xfeae, 0xfead},

{ 0xfeb0, 0xfeaf, 0xfeb0, 0xfeaf},

{ 0xfeb2, 0xfeb3, 0xfeb4, 0xfeb1},

{ 0xfeb6, 0xfeb7, 0xfeb8, 0xfeb5},

{ 0xfeba, 0xfebb, 0xfebc, 0xfeb9},

{ 0xfebe, 0xfebf, 0xfec0, 0xfebd},

{ 0xfec2, 0xfec3, 0xfec4, 0xfec1},

{ 0xfec6, 0xfec7, 0xfec8, 0xfec5},  // 0x638

{ 0xfeca, 0xfecb, 0xfecc, 0xfec9},

{ 0xfece, 0xfecf, 0xfed0, 0xfecd},  //0x63A

{ 0x63b, 0x63b, 0x63b, 0x63b},

{ 0x63c, 0x63c, 0x63c, 0x63c},

{ 0x63d, 0x63d, 0x63d, 0x63d},

{ 0x63e, 0x63e, 0x63e, 0x63e},

{ 0x63f, 0x63f, 0x63f, 0x63f},

{ 0x640, 0x640, 0x640, 0x640},   // 0x640

{ 0xfed2, 0xfed3, 0xfed4, 0xfed1},

{ 0xfed6, 0xfed7, 0xfed8, 0xfed5},

{ 0xfeda, 0xfedb, 0xfedc, 0xfed9},

{ 0xfede, 0xfedf, 0xfee0, 0xfedd},

{ 0xfee2, 0xfee3, 0xfee4, 0xfee1},

{ 0xfee6, 0xfee7, 0xfee8, 0xfee5},

{ 0xfeea, 0xfeeb, 0xfeec, 0xfee9},

{ 0xfeee, 0xfeed, 0xfeee, 0xfeed},   // 0x648

{ 0xfef0, 0xfeef, 0xfef0, 0xfeef},

{0xfef2, 0xfef3, 0xfef4, 0xfef1},   // 0x64A

};

判断是否是连接前面的,采用判断该字符前一个字符的判定方法,方法是,看前一个字符是否在集合set1中。如果在,则是有连接前面的。集合1如下:
static U16 theSet1[23]={
0x62c, 0x62d, 0x62e, 0x647, 0x639, 0x63a, 0x641, 0x642,
0x62b, 0x635, 0x636, 0x637, 0x643, 0x645, 0x646, 0x62a,
0x644, 0x628, 0x64a, 0x633, 0x634, 0x638, 0x626};

判断是否是连接后面的,采用判断该字符后一个字符的判定方法,方法是,看后一个字符是否在集合set2中。如果在,则是有连接后面的。集合2如下:
static U16 theSet2[35]={
0x62c, 0x62d, 0x62e, 0x647, 0x639, 0x63a, 0x641, 0x642,
0x62b, 0x635, 0x636, 0x637, 0x643, 0x645, 0x646, 0x62a,
0x644, 0x628, 0x64a, 0x633, 0x634, 0x638, 0x626,
0x627, 0x623, 0x625, 0x622, 0x62f, 0x630, 0x631, 0x632,
0x648, 0x624, 0x629, 0x649};

规则2。
阿拉伯文连字符规则:
连字符是以0x644开头,后面跟的是0x622,0x623,0x625,0x627,并根据情况取下面的字符数组0或1,如果0x644前一个字符是在集合1(同上面的集合1)中间,那么取数组1,否则取数组0。数组如下:
static U16 arabic_specs[][2]=
{
{0xFEF5,0xFEF6},
{0xFEF7,0xFEF8},
{0xFEF9,0xFEFA},
{0xFEFB,0xFEFC},
};

例1: 0x064A, 0x0644, 0x0622。。。
0x064A 的后面一个字符 0x0644 在集合2中,根据编码规则1得出它是后连字符(last),故转换成: 0xFEF3.  
而0x064A在集合1 中,故用 0xFEF6 替代 0x0644 0x0622 这两个编码。  
例2: 0x0632, 0x0644, 0x0622。。。
0x0632 的后面一个字符 0x0644 在集合2中,根据编码规则1得出它是后连字符(last), 故转换成: 0xFEAF.  
而 0x0632 不在集合1 中,故用 0xFEF5 替代 0x0644 0x0622 这两个编码。 

阿拉伯文字库 阿拉伯语字库 阿拉伯 字库 变形组合算法相关推荐

  1. 嵌入式产品如何支持阿拉伯文显示---看这一篇就够了

    在国际化大潮流之下,很多嵌入式系统产品,需要支持阿拉伯语言,可很多人却为之烦恼,我遇到了同样的烦恼,因此在网上搜索了很多关于阿拉伯字库及阿拉伯语言显示的资料,经过实战,整理了这篇文章.资料. 阿拉伯语 ...

  2. 波斯文字库 波斯语字库 波斯 字库 变形规则

    波斯-阿拉伯字母系统是一种以阿拉伯字母为主的书写系统.起初这套系统只用于阿拉伯语,但后来被波斯语吸收,并加入了四个字母:پ [p], چ [tʃ], ژ [ʒ], and گ [ɡ].而后这套系统被许 ...

  3. 十万个为什么儿童版_把中国科技传播至阿语地区,少儿社《十万个为什么》阿拉伯文版亮相童书展...

    在11月13日至15日举行的第八届上海国际童书展上,少年儿童出版社的<十万个为什么>阿拉伯文版亮相.该书于2020年正式出版,中国的科技成果将沿着"一带一路",传播至2 ...

  4. 阿拉伯文变形规范,阿拉伯语变形规则,阿拉伯文组合规则

    交流QQ:2229691219 阿拉伯语属阿非罗-亚细亚语系(闪含语系)闪语族.词一般由3个原生字母构成,可添加前缀,后缀,或使词的内部音位发生变化和插入其它音位构成新词. 阿拉伯共有28个字母,都是 ...

  5. android 阿拉伯语符号,阿拉伯文符号

    阿拉伯语(العَرَبِيَّة‎ al-ʻarabīyah [alʕaraˈbijja] 或者 عربي/عربى‎ ʻarabī [ˈʕarabiː])是除了英语和法语之外最多国家使用的官方语言 ...

  6. Atian inputmethod 输入法解决方案 方言与多语言多文字支持 英语汉字汉语阿拉伯文的支持 (au...

    Atian inputmethod 输入法解决方案 方言与多语言多文字支持 英语汉字汉语阿拉伯文的支持 (au 1.1. Overview概论 支持母语优先的战略性产品,主要是针对不想以及不愿使用普通 ...

  7. 阿拉伯字母及阿拉伯文排版规则

    http://blog.sina.com.cn/s/blog_5d8cc6410100s2v1.html   阿拉伯语属阿非罗-亚细亚语系(闪含语系)闪语族.词一般由3个原生字母构成,可添加前缀,后缀 ...

  8. jsf mysql_如何在Spring JSF MySQL应用程序中正确显示阿拉伯文?

    我使用Spring 3,JSF 2,MYSQL,Hibernate和Heidi SQL是数据库的GUI工具 我有一个阿拉伯字符的编码问题是阿拉伯语单词作为??????????插入到数据库中,并以相同的 ...

  9. [导入]silverlight 2.0希伯来语及阿拉伯语的support.zip(344.42 KB)

    这个项目提供silverlight 2.0与希伯来语及阿拉伯语的support.including从右到左的支持,统一到右及视觉textwrapping功能.  目前,我们在阿尔法测试阶段silver ...

  10. unity 阿拉伯文显示

    阿拉伯文比较特殊,它是从右向左读,可以借助unity插件,实现这种反转 插件下载

最新文章

  1. android test.apk,app-debug.apk和app-debug-androidTest.apk在安装macaca-android模块的时候build失败...
  2. iPhone音频播放后台控制
  3. MATLAB从入门到精通系列之MATLAB常见问题集锦-(二)
  4. 【学习笔记】利用Excel实现简易版大屏
  5. 添加中文数据出现问号_怪物猎人世界绚辉龙和冥赤龙的出现时间规律一览
  6. NFS服务安装与配置方案
  7. Eureka整合sidecar异构调用
  8. Win10系统如何解除U盘写保护模式
  9. 详解tomcat的连接数与线程池--转载
  10. NO.3 寻找数组主要元素
  11. java教程配置通达信,通达信公式转换JAVA,通达信20个经典公式
  12. 半车模型悬架系统的simulink仿真
  13. 关于 Spring 中 getBean 的全流程源码解析
  14. 使用HTML+CSS实现图片滚动效果
  15. c#开发移动彩信网关
  16. Amcharts4使用笔记
  17. css竖向箭头符号_如何用css实现三角形符号代码
  18. 遍历二叉树的递归算法与非递归算法
  19. 一年卖出20.4亿颗图像传感器,这家公司上市首日股价大涨145%
  20. JavaSE进阶 第七章 常用类 (一) String

热门文章

  1. 软件需求规格说明书范例
  2. SPSS中介效应分析(Process和mediate插件)
  3. 塞班系统 微信 服务器忙,微信QQ遭停用,塞班系统部分机型彻底不能登陆
  4. 公文排版字体要求以及印制要求
  5. 企业发文的红头文件_【红头文件写作格式】 公司红头文件格式范本
  6. 陈纪修老师《数学分析》 第07章:定积分 笔记
  7. win7 java下载_Windows7系统下JAVA运行环境下载、安装和设置(第二次更新:2012年03月14日)...
  8. 中文版的XP转换为英文版的XP和XP多国语言包
  9. 留言板asp mysql,asp留言板(asp留言板源代码)
  10. Linux chmod、fchmod函数