雙向文稿

如此的話,這種字元稱之為"強"字元。 因為它們沒有包含方向上的資訊,所以被稱為"弱"字元。 在兩個具有一樣方向的強字元中的弱字元會得到相同的方向。

雙向文本(英:Bi-directional text)用於某些文字上,特別是如阿拉伯語(包含其變體Nasta'liq script)和希伯來語等文字是從右至左書寫,即從右手邊書寫而結束於左手邊。這不同於世界上的其它許多語言是由左至右書寫的。當在同一段落混合使用這兩種文字且其各自使用自己的書寫方向時,這種文稿被稱為雙向文稿。如果使用多層的引用時,問題將會變得更複雜。
許多電腦程式無法正確地處理雙向文稿。譬如,這個希伯來語的名字 Sarah (שרה),其拼法應為從右至左的:shin(ש)、resh(ר)、heh(ה)。一些瀏覽器則會以相反的方式來顯示希伯來語文句。
有一些書寫系統則可以使用任一種方向來書寫。如在埃及語聖書體中,會有一個符號含有"頭"(用來標示一行開始的方向)和"尾"(用來標示一行結束的方向)。漢字也可以用於任一方向,特別是用於招牌時(但是個別字元的方向則不會改變)。
另一種稱作牛耕式轉行書寫法的文字,則是用於一些古希臘語碑文、圖瓦雷克、古匈牙利文稿(Hungarian runes)中。這種書寫方法在寫下一行時,會改變書寫方向,並且常會反轉個別的字元。
雙向文稿支援則是指電腦系統可以正確處理及顯示雙向文稿的能力。其行話則常用BiDibidi
早期的電腦只設計成支援一種書寫方向,傳統上是只支援源於拉丁字母的由左至右方向。增加一個字元集字元編碼則不過是多支援一種由左至右的語言,但是無法支援由右至左的文稿,如阿拉伯語和希伯來語,也無法混合使用兩者。單純地把由左至右改為由右至左是可行的,但是這犧牲了處理左至右文稿的能力。若有雙向文稿支援,則它可以在同一頁混合使用兩種文字而不用理會其書寫方向。
特別地,Unicode準則提供了完整的雙向文稿支援,清楚描述如何編碼及顯示混合左至右及右至左的文句。
在 Unicode 編碼中,所有非標點符號字元都以書寫順序儲存。這意味著,字元書寫方向的資訊是儲存在字元里的。如此的話,這種字元稱之為"強"字元。標點符號則可以出現在左至右和右至左的語言裡。因為它們沒有包含方向上的資訊,所以被稱為"弱"字元。至於"弱"字元要如何放置於文稿中,則是交由軟體來自行決定。然而,即使雙向算法依其規則,掃過、辨識強字元,同時指定弱字元的方向,(在混合方向的文字中)這有時仍會導致顯示上的錯誤。
在兩個具有一樣方向的強字元中的弱字元會得到相同的方向。如果一個弱字元處於有著不同方向的強字元中,則會得到主文的書寫方向(在左至右檔案中,會變成左至右;在右至左檔案中,則會變成右至左)。如果一個"弱"字元跟著另一個"弱"字元,這個算法會尋找第一個相鄰的"強"字元。有時,這會導致非預期的顯示錯誤。要校正或預防這些錯誤,你可以使用"假強"字元。這類的統一碼控制字元被稱作"標記"。在檔案中插入標記(U+200E用於左至右或U+200F用於右至左),會使得被包圍其中的字元得到同於標記的書寫方向。
譬如,在阿拉伯語文章中,要想正確顯示用於一個英文名字的品牌的商標符號™ (TM;U+8482),如果商標符號後並沒有接著左向右的文句,你須要在商標符號後加上一個左至右的標記。這是因為如果你不加上左至右的標記的話,™這個弱符號就會變介於一個左至右的強字元和一個右至左的強字元之間。於是,在右至左的文檔中,它會被認為是右至左,從而以不正確的順序來顯示。

相關詞條

熱門詞條

聯絡我們