首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入SQL数据库之前删除字符串中的重音

插入SQL数据库之前删除字符串中的重音
EN

Stack Overflow用户
提问于 2014-08-06 10:38:07
回答 1查看 485关注 0票数 0

我编写了下面的测试,以删除字符串中的重音字符。由于公司政策,我无法显示程序中的任何代码,这就是为什么我编写了违规代码的测试。

代码语言:javascript
复制
class Program
{
    static void Main(string[] args)
    {
        String name = "Damián";

        Console.WriteLine(name);
        Console.WriteLine("");

        Console.WriteLine(removeAccents(name));
        Console.ReadLine();
    }

    static string removeAccents(string text)
    {
        return Encoding.UTF8.GetString(Encoding.GetEncoding("ISO-8859-8").GetBytes(text));
    }
}

但是,当我尝试将新字符串插入数据库时,重音字符将重新出现在数据中。我使用参数化SqlCommand插入数据。调试程序时,只有在执行命令时,数据中不存在重音。会否是改变文字编码的情况?

如果能在这方面提供任何帮助,我们将不胜感激。

编辑:

上面的代码用于移除重音,并生成输出:

达曼

达米安

_

但是,当名称被输入数据库时,它再次包含'á‘。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-06 10:44:54

我认为您的"removeAccents“函数需要做一些工作。

让我们向前推进几步-

代码语言:javascript
复制
static string RemoveAccents(string text) 
{
    var normalized = text.Normalize(NormalizationForm.FormD);
    var builder = new StringBuilder();

    foreach (var character in normalized)
    {
        var unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(character);
        if (unicodeCategory != UnicodeCategory.NonSpacingMark)
        {
            builder.Append(character);
        }
    }

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

看看能不能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25158218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档