2012-07-10 23 views
1

我們將數字化大量書籍。在不影響數字圖書的流通的情況下,想在原圖書上標記掉線的地方。哪個隱形Unicode章程可以用來標記原始文件中的某些特殊位置?用於標記的Unicode字符

(\ n將用於指示段落的結尾)

This is a sentence 
in the original book that 
I want to mark  line 
break places. 

什麼是正確的字符替換*

This is a sentence * in the original book that * I want to mark line *break places. 
+0

考慮零寬度空間(U + 200B)。 – 2012-07-10 12:54:48

回答

2

Unicode沒有隱藏字符的概念,它表示某些原始的換行符,但不會在渲染中導致換行符。 Unicode對純文本數據進行編碼,並且對於換行符的控制字符在呈現純文本時會產生影響。

這裏重要的是如何使用這些文件。如果他們需要使用純文本編輯器進行處理,那麼您需要決定:或者是使用默認渲染複製換行符,或者在創建文件時忽略這些換行符。你不能讓它們看不見。不同的文本編輯器,如記事本和Emacs,可能會使用不同的線控制約定;一個程序的結尾是另一個程序的段落結尾。

如果文件只能由您創建的程序處理,那麼您可以使用任何您喜歡的約定。最合乎邏輯的是: 「行和段落分隔符」。 Unicode標準提供了兩個明確的字符, U + 2028行分隔符和U + 2029段落分隔符,分隔行和 段落。它們被認爲是以Unicode明文表示線段和段落邊界 的默認形式。每行分隔符後開始一個新行。在每個段落分隔符後開始新的段落 。由於這些字符是分隔符代碼,因此不需要啓動第一行或段落,也不必使用它們結束最後一行或段落。這樣做會表明後面有一個空的段落或行。段落分隔符可以插入文本段落之間。它的使用允許創建純文本文件,它可以在接收端以不同的線寬佈局。 「 http://www.unicode.org/versions/Unicode6.1.0/ch16.pdf(PDF中的第6頁和第7頁)

請注意,U + 2028和U + 2029通常不被文本編輯人員理解。它們適用於以純文本格式存儲數據。當文本被渲染時,渲染軟件可以選擇忽略原始分割成行,並將U + 2028等同於一個空格,除非以連字符開頭(這會帶來一個問題,如果沒有更高級別信息:以「foo-」結尾並以「bar」開頭的行可以代表單詞「foobar」作爲斷行連字符,或連字符化合物「foo-bar」,或者在某些情況下, 「foo-bar」組合)。

+0

非常感謝您的回答。有沒有預定義目的的任何Unicode字符可用於特殊情況? – PHPst 2012-07-11 02:48:58

+0

@Reza,不,沒有這樣的字符。有大量代碼點可用於特定於應用程序的目的,即所謂的私用代碼點。但除了「私人協議」之外,它們不適用於信息交換,並且您不能期望程序默認忽略它們(因爲任何程序都可能爲其指定任何含義)。 – 2012-07-11 04:54:12

0

使用換行符(LF,"\n"0x0A)和/或可能回車(CR,"\r"0x0D)。
即,用於此目的的常規字符。

+0

如上所述,我正在尋找一個不影響文本流的角色。它只會用於編程目的。 – PHPst 2012-07-10 11:35:07

+0

換行符本身不會影響文本流,因爲它沒有說明文本將如何輸出。你當然可以爲了這個目的而濫用任何其他無形的角色,但是當這個角色已經有了這個角色時,這似乎是荒謬的。請爲這個問題提供更多的背景,你需要什麼。 – deceze 2012-07-10 11:37:37

相關問題