我在C#中创建一个小应用程序,根据从SQL查询传递的信息搜索文件名。在从SQL查询传递的数据中,有时会出现(可能是我公司的国际访问者的多个实例)其中包含国际字符的名称。我们的文件名是英文字母,没有特殊字符。
我正在尝试找到一种方法将国际字符转换为纯英文字母字符,以便我可以完成此搜索?这可以通过数据库查询来完成,还是必须通过应用程序代码完成?
例如:
Hervé需要转换为Herve
或者
Mañana需要转换为Manana
答案 0 :(得分:10)
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));
}
答案 1 :(得分:0)
如果您正在针对MS-SQL服务器运行,请参阅联机帮助中的COLLATE。您可以在运行中以功能方式更改编码。