加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

删除不可打印的字符C#多语言

发布时间:2020-12-15 03:54:27 所属栏目:百科 来源:网络整理
导读:我在asp.net C#中有一个多语言的应用程序.这里我要创建一个zip文件,并使用数据库中的一些项来构造文件名.我从文件名中删除特殊字符.但是,如果语言是德语,例如我的修剪算法将删除一些德语字符,如Umlaut. 有人可以为我提供一种适应语言的修剪算法. 这是我的代
我在asp.net C#中有一个多语言的应用程序.这里我要创建一个zip文件,并使用数据库中的一些项来构造文件名.我从文件名中删除特殊字符.但是,如果语言是德语,例如我的修剪算法将删除一些德语字符,如Umlaut.

有人可以为我提供一种适应语言的修剪算法.

这是我的代码:

private string RemoveSpecialCharacters(string str)
{
    return str;
    StringBuilder sb = new StringBuilder();
    foreach (char c in str)
    {
        if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') | c == '.' || c == '_' || c == ' ' || c == '+')
        {
            sb.Append(c);
        }
    }
    return sb.ToString();
}

谢谢

解决方法

假设您的意思是ZIP文件的名称,而不是ZIP文件中的名称,则可能需要检查该文件是否有效,这将允许您使用不仅仅是字母或数字:
char[] invalid = System.IO.Path.GetInvalidFileNameChars();

string s = "abc?ü*/";
var newstr = new String(s.Where(c => !invalid.Contains(c)).ToArray());

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读