C#過濾控制字符(SOH、DLE、EOT)等


        從設備采集到信息,有時候結尾會帶些特殊字符,經常還是不可見字符,不過復制到Notepad++,會顯示(SOH)(DLE)(EOT)等,查詢后才知道這些是ASCII中的控制字符。

       控制字符(Control Character),出現於特定的信息文本中,表示某一控制功能的字符。

    在ASCII碼中,第0~31號及第127號(共33個)是控制字符或通訊專用字符,如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BS(退格)、BEL(振鈴)等;通訊專用字符:SOH(文頭)、EOT(文尾)、ACK(確認)等。

      SOH是start of heading的縮寫:

     

       C#采集后存儲到數據庫中,需要過濾這些字符,代碼如下:

       

        /// <summary>
        /// 過濾不可見字符
        /// </summary>
        /// <param name="sourceString">原始字符</param>
        /// <returns>刪除后結果</returns>

public string DeleteControlChar(string sourceString)
{
       System.Text.StringBuilder sBuilder = new System.Text.StringBuilder();
       for (int i = 0; i < sourceString.Length; i++)
       {
            int Unicode = sourceString[i];
            if (Unicode > 31 && Unicode != 127)
            {
                sBuilder.Append(sourceString[i].ToString());
            }
       }
     return sBuilder.ToString();
}

參考:

  https://blog.csdn.net/dingxingmei/article/details/7738548 

  https://zhidao.baidu.com/question/40988312.html

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM