阿拉伯字母变形表johnphan

Arabic Alphabet Shape Table / 阿拉伯字母的变形程序

####阿拉伯语字母,除了用在阿拉伯语,还用在了波斯语等其它许多语言中,包括我国新疆维吾尔语。完全不懂阿拉伯语,为了在嵌入式设备上的程序,能处理阿拉伯语的变形问题,才收集一些资料学习。所有文字来自于网络上的资料加工编辑而成。

阿拉伯语的课本上,都是从阿拉伯语的语法、 词法甚至书法上,讲解阿拉伯语字母的变形问题,这种解释对于编写阿拉伯字母变形程序,基本上没有什么参考价值,或者说学习代价带太大了,不实用。不需要学懂阿拉伯语的这些语法规则,只要知道在计算机显示环境下,一个uincode的字符在何种上下文的条件下,变换成何种字符即可。

####学习的结论是,阿拉伯语优先考虑了书写视觉上要求,没有使用所见即所得的直观符号处理方式(看见的符号就是实际保存的符号),而是将阿拉伯字母渲染之后再显示。完整的渲染流程应该是:计算机在显示阿拉伯字母时,需要根据选择阿拉伯字母的书写风格和当前选择的字体,以及显示位置、书写空间的情况,将字母原型(不是字母原型似乎也能处理),经过Shape(字母位置变形)、Ligature(Combined)(字母连写变形 或称作结合变形)、Diacritics(字母标注变(元)音符号变形)、Kashida(为了凑满一整行字母延长变形)、Tatwell(插入字母链接符号)等等一系列的操作,才可以将一段阿拉伯字母渲染输出(Rendering),从右到左的排版,再与从左至右的字符混合排版后,显示出来。不能完全确定信息是:不同的地域语言,阿拉伯字母变形规则有可能有所不同。全部的变形规则中,最主要的变形是Shape和Ligature。如果用汉语来非常粗略的比喻阿拉伯语的连写变形规则,就好像一篇汉字文章在显示(书写的)的时候被要求,一定要把文字中的“不好”显示成“孬”,把“混凝土”显示成“砼”,把“不用”显示成“甭”...,。阿拉伯语是最难学习的语言之一。

####变形之后显示输出来的 Arabic Letter 字符虽然也是Unicode字符(Contextual forms),但是它们一般不使用Unicode编码表示,而是用预先设定的字体的glyph id表示,并且再附加上字体信息、格式信息,因为显示出来的字母有可能是几个字符叠加渲染出来的,所以字体信息、格式信息也很重要。在0x20**范围的一些Unicode字符,是格式控制字符和标注元音用的叠加字符。阿拉伯语字母为了视觉效果的渲染变形,有着多对一,多对多复杂的映射关系,完整全套的变形的处理功能(包括双向排版处理),绝非是一个小程序就可以实现的。但是还是有一些小程序,实现了(现代标准阿拉伯语的)阿拉伯语字母 Shape(位置变形) & Ligature(连写变形) 这2个最主要视觉变形功能,可以用在简单的设备显示阿拉伯字母。例如:

一些Gui库中,也有阿拉伯语字母的处理代码,例如:以往旧版MTK,ucGUI(emWIN)。

####下图是一些Arabic Alphabet Shape阿拉伯字母各种视觉渲染变形例子,来自网络上的资料截图,注意阿拉伯字母是从右至左阅读的:

位置变形:首位变形,末尾变形的例子

连接变形的例子:

标注元音的例子:

为了视觉效果,复杂的多种形态变形例子:

为了视觉效果(凑满一整行)延长变形的例子:

插入了延长字符的例子:

####字符变形之后, Shape & Ligature 变形导致字符Unicode编码变化的的例子:

####不是所有的代码编辑器,都能完全正确显示阿拉伯字符的,即便是完全支持阿拉伯字符的编辑器,对于不懂阿语的人来说,也难以自容的编辑阿拉伯字符。下表中,用英文字符o将它们包围起来,防止阿拉伯语字母显示的时候,自动发生各种变形。这个变形表,仅仅显示出了阿拉伯字母位置变形情况。

####阿拉伯字母位置变形表

o o 中是空白表示不变化。原型字母的Unicode是0x06**,变形字母Unicode是0xfe**

原型----独立-----在后-----在前-----中间

oءo , oﺀo , o o , o o , o o , Arabic letter Hamza oآo , oﺁo , oﺂo , o o , o o , Arabic letter Alef with Madda aboأo , oﺃo , oﺄo , o o , o o , Arabic letter Alef with Hamza aboؤo , oﺅo , oﺆo , o o , o o , Arabic letter Waw with Hamza abooإo , oﺇo , oﺈo , o o , o o , Arabic letter Alef with Hamza beoئo , oﺉo , oﺊo , oﺋo , oﺌo , Arabic letter Yeh with Hamza abooاo , oﺍo , oﺎo , o o , o o , Arabic letter Alef oبo , oﺏo , oﺐo , oﺑo , oﺒo , Arabic letter Beh oةo , oﺓo , oﺔo , o o , o o , Arabic letter Teh Marbuta oتo , oﺕo , oﺖo , oﺗo , oﺘo , Arabic letter Teh oثo , oﺙo , oﺚo , oﺛo , oﺜo , Arabic letter Theh oجo , oﺝo , oﺞo , oﺟo , oﺠo , Arabic letter Jeem oحo , oﺡo , oﺢo , oﺣo , oﺤo , Arabic letter Hah oخo , oﺥo , oﺦo , oﺧo , oﺨo , Arabic letter Khah oدo , oﺩo , oﺪo , o o , o o , Arabic letter Dal oذo , oﺫo , oﺬo , o o , o o , Arabic letter Thal oرo , oﺭo , oﺮo , o o , o o , Arabic letter Reh oزo , oﺯo , oﺰo , o o , o o , Arabic letter Zain oسo , oﺱo , oﺲo , oﺳo , oﺴo , Arabic letter Seen oشo , oﺵo , oﺶo , oﺷo , oﺸo , Arabic letter Sheen oصo , oﺹo , oﺺo , oﺻo , oﺼo , Arabic letter Sad oضo , oﺽo , oﺾo , oﺿo , oﻀo , Arabic letter Dad oطo , oﻁo , oﻂo , oﻃo , oﻄo , Arabic letter Tah oظo , oﻅo , oﻆo , oﻇo , oﻈo , Arabic letter Zah oعo , oﻉo , oﻊo , oﻋo , oﻌo , Arabic letter Ain oغo , oﻍo , oﻎo , oﻏo , oﻐo , Arabic letter Ghain oفo , oﻑo , oﻒo , oﻓo , oﻔo , Arabic letter Feh oقo , oﻕo , oﻖo , oﻗo , oﻘo , Arabic letter Qaf oكo , oﻙo , oﻚo , oﻛo , oﻜo , Arabic letter Kaf oلo , oﻝo , oﻞo , oﻟo , oﻠo , Arabic letter Lam oمo , oﻡo , oﻢo , oﻣo , oﻤo , Arabic letter Meem oنo , oﻥo , oﻦo , oﻧo , oﻨo , Arabic letter Noon oهo , oﻩo , oﻪo , oﻫo , oﻬo , Arabic letter Heh oوo , oﻭo , oﻮo , o o , o o , Arabic letter Waw oىo , oﻯo , oﻰo , o o , o o , Arabic letter Alef Maksura oيo , oﻱo , oﻲo , oﻳo , oﻴo , Arabic letter Yeh oپo , oﭖo , oﭗo , oﭘo , oﭙo , Eastern arabic letter Peh oچo , oﭺo , oﭻo , oﭼo , oﭽo , Eastern arabic letter Tcheh oژo , oﮊo , oﮋo , o o , o o , Eastern arabic letter Jeh oکo , oﮎo , oﮏo , oﮐo , oﮑo , Eastern arabic letter Keheh oگo , oﮒo , oﮓo , oﮔo , oﮕo , Eastern arabic letter Gaf oیo , oﯼo , oﯽo , o o , o o , Eastern arabic letter Farsi Yeh

可以将这些数据,导入到Excel表:

注意:空白表示不变(同“独立”),原型字母的Unicode是0x06**,变形字母Unicode是0xfe**

上面的数据来自于下面这个程序(C#)的源代码。 :

####编写程序,在程序种观察阿拉伯字位置变形和连写变形情况,这个程序还可以输入一个不正确的变形,看看微软是如何处理的。

####问题:获得了变形之后的字符串Unicode,和变形前的字符串Unicode,在比较函数中,如何认为它们是“相等”的?因为它们的确有着某种等价关系。

####测试一下网络上收集的各种阿拉伯字母变形处理程序,验证能否正确的处理位置变形和连写变形,对比发现有的程序是无法处理连写规则的,右边正确的连写变形,左边是出错的例子:

####连写规则表

LigaturesCharacter combinations of Lam and Alef are transformed into ligatures. The following tableshows how emWin transforms these combinations into ligatures, if the first letter is a Lam(code  0x0644 ):Second letter                 | Ligature (final) | Ligature (elsewhere)0x622 , Alef with Madda above | 0xFEF6           | 0xFEF50x623 , Alef with Hamza above | 0xFEF8           | 0xFEF70x625 , Alef with Hamza below | 0xFEFA           | 0xFEF90x627 , Alef                  | 0xFEFC           | 0xFEFB

####附录1:

其它一些收集的资料截图

阿拉伯字母位置变形规则

-------------------------------------------------------------------------------------------------------------------------------------------

阿拉伯字母连写变形规则 :

####知乎网上的资料:维吾尔语使用的阿拉伯语字母的情况,从中可以看出地域不同的差异。

####附录2

Arabic Shaping 程序例子:(来自网络)

编辑程序的时候,如果程序中有阿拉伯语字符串,程序员是不需要所谓的变形和逆序显示的。

THE END
0.阿拉伯语字母表阿拉伯语字母表 阿拉伯语属阿非罗一亚细亚语系闪米特语族,是世界主要语言之一,是西亚和北非22个国家和地区的官方语言,使用人口约2亿。它是联合国6种工作语言之一,是全世界穆斯林通用的语言。阿语方言众多,现代标准阿拉伯语采用以《古兰经》为代表的典范的文学语言,书面语与口语不尽相同,与大马士革方言接近。jvzquC41yy}/rrfpujko0lto1cxuklqg19>29;883:611
1.阿拉伯语字母在线发音阿拉伯语【阿拉伯语字母tukkk.com】阿拉伯语在线发音 阿拉伯语学习 发音 阿拉伯语入门学习 学习阿拉伯语发音 主页 >> 阿拉伯语 第22 课: 阿拉伯语以上2部分-1第22 课: 阿拉伯语以上2部分-2第22 课: 阿拉伯语以上2部分-3第22 课: 阿拉伯语以上2部分-4jvzq<84yyy4uwtpm0eun1jwcdki0c{fdke3suj6/ej>/j}r
2.阿拉伯语字母表字母和声音手机版下载2025官方最新阿拉伯语字母表有28个基本的字母。加上两个额外的字符,(Hamza ء和taa marbouta ة,用于表示女性)。 阿拉伯语从右往左书写。许多字母看起来相似,但是可以通过其中间部分上方或下方的叫rasm的点相互区分。这些点是字母不可分割的一部分,因为它们能够区分代表不同发音的字母。例如,发音为b和t的阿拉伯语字母有相同jvzq<84yyy4ppunpgfuxp7sgv1yph}4862<8;7mvo
3.阿拉伯语学习:字母简表阿拉伯语学习:字母简表 阿拉伯语的构词法有独特的规则,每一词汇大都有其内部词根和派生关系上的曲折变化,通常一个词根可派生出若干含有不同时态的动词和不同含义的名词。为了帮助大家学习阿拉伯语,小编分享了阿拉伯语字母简表,欢迎阅读! · ·jvzquC41o0ui3950eqs0rnnzwp5Trjskuj534?7930nuou
4.阿拉伯语字母总表.pdf阿拉伯语字母总表.pdf 10页内容提供方:带头大哥 大小:92.49 KB 字数:约1.12万字 发布时间:2017-06-07发布于广东 浏览人气:647 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)阿拉伯语字母总表.pdf 关闭预览 想预览更多内容,点击免费在线预览全文 免费在线预览全文 阿拉伯语字母总表.jvzquC41oc~/dxtm33>/exr1jvsm1;5391672@4334918<830unuo
5.阿拉伯字母阿拉伯字母有多少个呢?下面小编来告诉你。 阿拉伯语有28个字母,包括14个太阳字母(ث ت د ر ز س ش ص ض ط ظ لا ن ذ)以及14个太阴字母。阿拉伯语字母为阿拉伯语的书写形式,类似于希伯来文。这表明在很多书籍和杂志中,短元音并不被标出,所以人们必须从文中推测出这些元音jvzquC41o0kd‚x0eqs0gmz1cngcq8<293;/j}rn
6.阿拉伯语发音字母全版本汇总阿拉伯语发音字母合集阿拉伯语发音字母合集是一个专为阿拉伯语初学者设计的软件专题合集,包含多款软件,旨在帮助用户快速掌握阿拉伯字母的发音和书写。这些软件通常提供真人发音示范、互动学习模式以及丰富的拓展资源,如常用短语和对话练习等,以满足用户多方面的学习需求。jvzquC41o0isut~0eqs0|qzcpvo0|B<:;l=/j}rn
7.阿拉伯语手写体字母表发音以及连写规则解答一 举报 参见新编阿拉伯语第一册 黄皮书 解析看不懂?免费查看同类题视频解析查看解答 相似问题 阿拉伯语怎么连写 阿拉伯语28个字母 的发音 字母连写中,什么叫直接斜连写,相靠斜连写,直接横连写,相靠横连写? 话说一定要按这些规则写吗. 特别推荐 热点考点 2022年高考真题试卷汇总 2022年高中期中试卷汇总 20jvzquC41yy}/|‚gcpi4dqv4swgyukxs1e5?f6ng:e3kee9;c73;9:njd:4kec>fh0jznn