2016-07-01 215 views
0

我剛剛得知it's OK for a Unicode string to contain isolated combining characters正確處理UTF8字符串連接

這引發了另一個問題,相對於以這些字符開頭的字符串的連接。

我正在開發一個UTF8String對象,以使UTF-8字符串處理更容易。

該對象有一個concat()方法,它將另一個字符串連接到當前字符串。

如果第二個字符串組合字符開始,我應該添加非打破空間的兩個字符串之間,以避免組合第二串之前分離的第一個字符,到第一個字符串的最後一個字符?

或者預計會發生組合嗎?

+1

你怎麼得到分解文本在字符串中的第一位?代碼中某處可能存在'strLetter + strDiacritic'表達式,在這種情況下,添加NBSP是不正確的。 – dan04

+2

應該可以通過組合獨立的基本字符和組合字符來建立Unicode字符串。我會爲一個不允許我這麼做的字符串類感到驚訝。 –

+3

推測圖書館用戶的意圖是一個相當糟糕的主意。 98%的時間隨機添加空格是錯誤的。 2%的時間不添加它們可能是錯誤的,但圖書館用戶可以自己輕鬆修復。儘量避免重新發明這個輪子,至少看看ICU如何做。 –

回答

2

我正在開發一個UTF8String對象,以使UTF-8字符串處理更容易。 [...]我應該在兩個字符串之間添加一個不間斷的空格嗎?

我會說絕對不是。像處理字形邊界一樣,處理像UTF-8這樣的字節編碼是一個單獨的,較低層次的問題。將這兩個問題混合在一起將是一個意外的,不受歡迎的分層違規。

如果你想建立一個字符串類,將字形集羣視爲不可分割的單位,這很好,但這是一個不同的動物(並且需要做很多工作來保持一致)。