Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从不属于特定代码页的C#字符串中删除字符_C#_String_Codepages - Fatal编程技术网

从不属于特定代码页的C#字符串中删除字符

从不属于特定代码页的C#字符串中删除字符,c#,string,codepages,C#,String,Codepages,在C#中,我有一个字符串,它将使用代码页37 US插入到db表中。例如,“€”将导致插入操作失败 有什么好方法可以清除代码页37中未显示的字符串,并可能用一些默认字符替换这些字符?类似的内容 var euroString = "abc?€./*"; var encoding37 = System.Text.Encoding.GetEncoding( 37, new EncoderReplacementFallbac

在C#中,我有一个字符串,它将使用代码页37 US插入到db表中。例如,“€”将导致插入操作失败

有什么好方法可以清除代码页37中未显示的字符串,并可能用一些默认字符替换这些字符?

类似的内容

        var euroString = "abc?€./*";
        var encoding37 = System.Text.Encoding.GetEncoding(
            37, 
            new EncoderReplacementFallback("_"), //replacement char
            new DecoderExceptionFallback());
        var byteArrayWithFallbackChars = encoding37.GetBytes(euroString);
        var utfStringFromBytesWithFallback = new string(encoding37.GetChars(byteArrayWithFallbackChars));
        //returns "abc?_./*"

注意:您可以只使用
GetEncoding(37)
,但在这种情况下,替换字符是
,我认为这对DB:)来说并不太合适。

这里有一个正则表达式,用于将输入限制在允许的字符范围内:

const string Allowed = @"1-9\."; //Add allowed chars here
string cleanStr = Regex.Replace("£1.11", "[^" + Allowed + "]", "");