程序代码中希伯来文(阿拉伯文、波斯文)字符串难以编辑的问题

希伯来语、阿拉伯语、波斯语,都是从左到右显示的,姑且说它们是“反序语言”吧。

在许多编程的IDE中,这些语言的字符串均能正确的显示,也就是,显示顺序与实际内存保存的顺序正好相反(也与中国人的阅读习惯相反)。

这些反序语言的字符串,混杂在正常的代码中,虽然目前大多数的代码编辑器,都可以正确的显示这些字符串,但是对中国的程序员而言,已经习惯了,看见的字符串顺序,与实际保存的字符串的顺序是一致的思维,并不想深入学习这些反序语言的编辑方法,只是想简单的在编程中,按照习惯的从左到右实际的字符顺序编辑它们即可。

从左到右的程序代码中,混合着从右到左的希伯来语,对中国的程序员来说,实在是难以编辑。虽然 Visual Studio 等编IDE显示是正确的,但是对不懂这些反序语言的程序员,却成了障碍。在反序字符串中,←左移动一个字符,可能光标反而向右移动。

经过测试各种编辑器发现,在Sublime Text 编辑器中,如果程序中,混合了希伯来语的字符串,可以按照中国程序员的编辑程序的习惯,程序字符和反序语言的字符串字符,一律的从左到右的顺序显示,但是Sublime Text配置文件中可能需要添加一项:

"font_options": ["gdi"],

 Sublime Text 编辑器,显示出来的反序语言字符顺序,与实际存储的代码字符顺序是完全一致的,是“真正的”程序员的编辑器。

代码显示比较示例

Visual Studio 2019中的代码显示结果:

希伯来语的字符串的确是正确显示了,从右到左,但是不符合中国程序员的习惯,显示的字符顺序与实际存储的字符顺序不一致,移动光标、编辑修改都费劲。

 

 在Sublime Text 3.2.2 中的代码显示结果:

显示的字符顺序与实际保存的字符顺序一致,符合中国人程序员的习惯,可以直观的编辑、正常的移动光标,只要记得希伯来语的字符串,显示出来是颠倒的即可(如果是阿拉伯语,显示还更复杂,显示的时候,有合并两个字符成一个字符显示的问题)。

 

 代码执行之后,程序的界面显示 ,(与Visual Stuido 中代码显示一样)

PS

希伯来语,阿拉伯语,波斯语。后两种语言,除了反序书写之外,还有连写、变形规则,两个字符相邻时,可以变形成一个字符。混在这些语言文字中的数字、英文等等,依然要按照正序书写。在所谓的“能正确显示的”反序语言的编程IDE中,编辑、修改这些混杂在一起的文字,对中国的程序员来说,很别扭。

嵌入式开发,因为没有系统的支持,能正确的显示 混合了正序和反序的字符的字符串,非常麻烦,幸好有开源的代码可用。参考:bidi

 

posted on 2020-01-13 17:43  johnphan  阅读(1905)  评论(0编辑  收藏  举报

导航