這主要是一個我只是很好奇的理論問題。 (我沒有試圖通過編碼它自己或任何東西來做到這一點,我不是在重新發明輪子。)如何在Unicode中將字符串設置爲大寫/小寫?
我的問題是大寫/小寫表格的等效性如何適用於Unicode。例如,如果我必須使用ASCII來做這件事,我會選擇一個角色,如果它與[a-z]範圍一起下降,我會總結A和a之間的差異。
如果它不在這個範圍內,我會爲10個左右重音字符加上一個小等價表。 (或者,我可以只有一個完整的等值數組,256條目,其中大部分將與輸入相同)
但是,我猜測有更好的方式來指定Unicode中的等價性,給定有成千上萬的角色,並且從理論上講,可以添加一種新的語言或一組角色(並且我期望在發生這種情況時您不需要修補窗口)。
Windows對每個字符都有一個巨大的硬編碼等價表嗎?或者這是如何實施的?
一個相關的問題是SQL Server如何實現基於Unicode的重音不敏感和不區分大小寫的查詢。它是否有一個內部表格,告訴它它和E都等於「e」?
在比較字符串時聽起來不太快。
它如何快速訪問索引?它是否已將索引值轉換爲其「基本」字符,與該字段的整理對應?
有沒有人知道這些東西的內部?
謝謝!
我希望如果他們給unicode添加了一個新的字符集,那麼你需要補丁窗口,但是這將是一個非常低優先級的補丁,因爲最初沒有人會使用這些字符。 – 2008-11-18 02:40:03
「爲10個左右重音字符加上一個小等價表加上 - 」 - 你必須明白,「小」意味着大約100倍於你認爲的意思。 – 2008-11-18 03:30:54