C# 删除/替换国际字符
我正在用C#创建一个小应用程序,根据SQL查询传递的信息搜索文件名。在从SQL查询传递的数据中,有时(可能由于我公司的国际访客而有多个实例)会有带有国际字符的名称。我们的文件名是英文字母表,没有特殊字符 我正在试图找到一种方法,将国际字符转换为纯英语字母字符,以便我可以完成此搜索?这可以通过db查询完成,还是必须通过应用程序代码完成 例如: Hervé需要转换成Herve 或C# 删除/替换国际字符,c#,sql,character-encoding,C#,Sql,Character Encoding,我正在用C#创建一个小应用程序,根据SQL查询传递的信息搜索文件名。在从SQL查询传递的数据中,有时(可能由于我公司的国际访客而有多个实例)会有带有国际字符的名称。我们的文件名是英文字母表,没有特殊字符 我正在试图找到一种方法,将国际字符转换为纯英语字母字符,以便我可以完成此搜索?这可以通过db查询完成,还是必须通过应用程序代码完成 例如: Hervé需要转换成Herve 或 如果您运行的是MS-SQL server,则需要将Manana转换为Manana,请参阅联机帮助中的“整理”。您可以在功
如果您运行的是MS-SQL server,则需要将Manana转换为Manana,请参阅联机帮助中的“整理”。您可以在功能上动态更改编码。我正在针对SQL server运行,但是,我正在代码中运行动态SQL。但感谢您提供的整理,我将在querybuilder中研究如何实现这一点
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));
}