【发布时间】:2015-10-01 09:17:25
【问题描述】:
我有文本规范化方法,我用它将非英文字母转换为英文字母。
我需要使用 SQL Server 执行相同的功能
C#方法:
private string normalizeString(string inputWord)
{
StringBuilder stringBuilder = new StringBuilder();
foreach (char c in inputWord.Trim().ToCharArray())
{
string normalizedChar = c.ToString()
.Normalize(NormalizationForm.FormD).Substring(0, 1);
stringBuilder.Append(normalizedChar);
}
return stringBuilder.ToString();
}
示例
Ä => A
ä => a
Ö => O
ö => o
Õ => O
õ => o
Ü => U
ü => u
【问题讨论】:
-
你能再澄清一下你的问题吗?字母“A”和“a”在 Unicode 中称为拉丁字母,而不是英文字母。它们以多种语言存在(例如西班牙语、意大利语),不仅仅是英语。您是否要删除所有变音符号?还是只是某些变音符号?或者只是拉丁字母的变音符号?还是只有出现在拉丁字母表中的字母?因为西里尔字母也可以有变音符号!您正在寻找的操作有多复杂? Unicode 很难。 FWIW,Unicode Normalization Forms are defined here
-
是的,我想删除所有变音符号。
标签: c# sql sql-function