我正在C#中創建一個小應用程序,以根據從SQL查詢傳遞的信息來搜索文件名。在從SQL查詢傳遞的數據中,有時(可能是由於國際訪問者到我公司的多個實例)名稱中包含國際字符。我們的文件名是英文字母,沒有特殊字符。刪除/替換國際字符
我想找到一種方法將國際字符轉換爲純英文字母字符,以便我可以完成此搜索?這可以通過數據庫查詢來完成,還是必須通過應用程序代碼完成?
例如:
埃爾韋需要轉換到埃爾韋
或者
MANANA需要如果你對MS-SQL服務器上運行轉換爲MANANA
我正在C#中創建一個小應用程序,以根據從SQL查詢傳遞的信息來搜索文件名。在從SQL查詢傳遞的數據中,有時(可能是由於國際訪問者到我公司的多個實例)名稱中包含國際字符。我們的文件名是英文字母,沒有特殊字符。刪除/替換國際字符
我想找到一種方法將國際字符轉換爲純英文字母字符,以便我可以完成此搜索?這可以通過數據庫查詢來完成,還是必須通過應用程序代碼完成?
例如:
埃爾韋需要轉換到埃爾韋
或者
MANANA需要如果你對MS-SQL服務器上運行轉換爲MANANA
var s1 = ToASCII("Hervé");
var s2 = ToASCII("Mañana");
string ToASCII(string s)
{
return String.Join("",
s.Normalize(NormalizationForm.FormD)
.Where(c => char.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark));
}
,看COLLATE在聯機幫助中。您可以在功能上動態更改編碼。
我對SQL服務器運行,但是,我從代碼中運行動態SQL。但是,感謝COLLATE我將考慮實現在我的querybuilder – mattgcon
完美,像一個魅力工作謝謝你。 – mattgcon