我正在C#中创建一个小型应用程序,以基于从SQL查询传递的信息来搜索文件名。在从SQL查询传递的数据中,偶尔会有(其中有多个实例是由于我公司的国际访问者引起的)名称中带有国际字符的名称。我们使用的文件名是英文字母,没有特殊字符。
我正在尝试找到一种将国际字符转换为纯英文字母字符的方法,以便我可以完成此搜索?可以通过db查询完成此操作,还是必须通过应用程序代码完成?
例如:
Hervé needs to be converted to Herve
Or
Mañana needs to be converted to 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)); }