我有一個關於Windows不變文化的問題。Windows不變文化益智
簡潔地說,我的問題是:
不存在任何對字符c1的,和c2使得:
低級(C1,不變)= 拉丁字母一般低級(C2,不變)
但
較低(C1,invaraint)!= 不變下(C2,不變)
背景:
我需要存儲一個不變的小寫字符串(表示文件名)的SQL Server Compact,它不支持Windows不變的排序規則內。
理想情況下,我想這樣做,而不必將所有比較邏輯從數據庫中拉出並存入我的應用程序。
我解決這個問題的想法是存儲所有文件名的2個版本:一個用於向客戶顯示數據,另一個用於執行比較。在將其存儲在數據庫中之前,使用Windows不變語言環境將比較列轉換爲小寫字母。
但是,我真的不知道不變文化所做的映射是什麼樣的,除了它用來比較文件名的事實。
我想知道是否有可能因此計劃而導致誤報(或漏報)。
也就是說,我可以使用拉丁語-1不區分大小寫的SQL服務器排序規則來比較彼此相等的字符(以前是使用不變文化的下層語言)嗎?但不要在不變量文化?
如果發生這種情況,那麼我的應用程序可能會認爲Windows認爲是相同的2個文件。這最終可能會導致數據丟失。
注:
我知道,有可能在Windows上區分大小寫的文件。但是,我不需要支持這些場景。
是的。例如,國際用戶在命名文件時可能使用非ASCII字符。 – 2009-06-30 00:42:48
您是否可以通過限制國際用戶使用ascii來解決問題? – 2009-06-30 01:20:00
根據他存儲的內容,確定他可以通過限制國際用戶(並限制埃及用戶)以阿拉伯語解決問題。但他說他在存儲文件名,很多文件名不是阿拉伯文。 – 2009-06-30 01:39:17