如何从.NET中的字符串中删除变音符号(重音符号)?

詹姆斯·霍尔

我正在尝试转换一些加拿大法语中的字符串,基本上,我希望能够在保留字母的同时去除字母中的法语重音符号。(例如,转换éecrème brûlée则将变为creme brulee

实现此目标的最佳方法是什么?

布莱尔·康拉德

我没有使用这种方法,但是迈克尔·卡普兰(Michael Kaplan)在他的博客文章(标题令人迷惑)中描述了这样做的方法,该文章讨论剥离变音符号:剥离是一项有趣的工作(又名“无意义,又称全锰字符”是非间隔的,但有些间隔比其他间隔的间隔大)

static string RemoveDiacritics(string text) 
{
    var normalizedString = text.Normalize(NormalizationForm.FormD);
    var stringBuilder = new StringBuilder();

    foreach (var c in normalizedString)
    {
        var unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c);
        if (unicodeCategory != UnicodeCategory.NonSpacingMark)
        {
            stringBuilder.Append(c);
        }
    }

    return stringBuilder.ToString().Normalize(NormalizationForm.FormC);
}

请注意,这是他之前的文章的后续内容:剥离变音符号...。

该方法使用String.Normalize将输入字符串拆分为组成的字形(基本上将变位符中的“基本”字符分隔开),然后扫描结果并仅保留基本字符。只是有点复杂,但实际上您正在寻找一个复杂的问题。

当然,如果您将自己限制为法语,则可以使用@David Dibben建议的如何在C ++ std :: string中消除重音和波浪号的简单基于表的方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从列中的值中删除重音符号?

在JavaScript中删除字符串中的重音符号/变音符号

Java如何在字符串中添加带重音符号的“ e”?

如何在Swift中从字符串中删除变音符号?

如何在Python 3.5中删除重音符号并使用unicodedata或其他解决方案获取字符串?

如何从字符串中删除变音符号(变音符)?

如何在Haskell中从字符串中删除重音符号?

如何在Python的字符串中仅删除重音符号,而不删除变音符号

删除字符串数组中的重音符号

如何解码包含XML文档的base64编码的字符串,该XML文档在C#中包含带有重音符号(á,é,í,ó,ú)的字符?

如何在Perl 6中删除变音符号

删除字符串中的重音符号(“ñ”除外)

Firestore:如何正确地按带重音符号的字符串排序?

如何修复带重音符号的字符串[python]

如何从ios中的字符串中找到重音符号?

python中字符串的变音符号/重音符号的替换

如何使用python删除Webscrape名称的重音符号

如何在ruby中使用带重音符号的字符串

如何使用哈希图从Java中的Unicode字符串中删除重音符号?

如何键入带有重音符号的字符“ë”?

如何在S3元数据中存储带重音符号的字符?

如何获取带重音符号的字符而不是引号?

如何忽略Azure搜索中的重音符号?

如何使用cron作业从文件中删除重音符号?

如何清除R中的字符串列(带有大写字母和重音符号)?

如何从php中的字符串中获取带有变音符号的字符?

如何在bash中回显重音符号

Power Query:如何从文本中删除变音符号/重音符号

如何从 C# 中的字符串中删除变音符号?