我正在使用Java的文件名列表。什麼組件處理字符串中的組合Diaieresis?
我觀察到,在文件名中的一些單字符,如A,O和U實際上由一個序列的,你可以爲兩個單ASCII字符跟進描述:
ö
由o
表示,¨
我通過與codePointAt()
檢查看到這一點。德國名「Rölli」實際上是「Ro¨lli」:
...
20: R, 82
21: o, 111
22: ̈, 776
23: l, 108
24: l, 108
25: i, 105
...
上面的日誌中的字符¨
有value 776,這是一個「組合分音符」。這是一個所謂的組合標記,屬於graphemes,更確切地說是combining diacritics。所以這一切都合情合理,但我不明白什麼軟件組件將這兩個字符組合到一個變音符號中,並指定了這種行爲。
- 它與強大的字符代碼表使用幾個字節作爲內部表示形式無關。幾個字節與兩個組合字符不同。
- 字符串的任何簡單
print()
都顯示了組合字符,所以它既不是上面的某個UI層。 - 我記得用PHP觀察過。我想任何現代語言都可以處理這個問題。
什麼組件會導致組合字符顯示爲單個組合字符?這一切有多可靠?
Java是一種標準化方法,可以使組合代碼點的單個代碼點,如here?將是使用正則表達式的幫助...
非常感謝任何提示。