none
c# 如何替换扩展ASCII字符? RRS feed

  • 问题

  • 有一个字符串, 我想替换其中的非输出字符ie扩展ASCII字符,我用以下代码,但是不能正常运行。

    foreach (string line in File.ReadLines(txtfileName.Text))
                {
                    MessageBox.Show( Regex.Replace(line,
                  @"\p{Cc}",
                  a => string.Format("[{0:X2}]", " ")
                )); ;
     
                }
    例如:AAÂAA 替换结果是: AA AA
    2016年2月2日 13:09

答案

  • 你好,

    根据你的描述,我在本及做了一个Demo, 下面的代码,你可以参考一个,看能不能解决你的问题。

    string strReplacedVal = Encoding.ASCII.GetString(
           
    Encoding.Convert(
               
    Encoding.UTF8,
               
    Encoding.GetEncoding( Encoding.ASCII.EncodingName,
                   
    new EncoderReplacementFallback(" "),
                   
    new DecoderExceptionFallback()
                   
    ),
               
    Encoding.UTF8.GetBytes(line)
           
    )
    );

    Best regards,

    Cole Wu

    2016年2月3日 4:44
    版主