莫名其妙的異常004:「.」(十六進制值 0x00)是無效的字符

讀取一個第三方的接口,返回的字符串在頁面顯示時老是提示:
「.」(十六進制值 0x00)是無效的字符。
這種錯誤通常你們也知道是由於有特殊字符的緣由,無非就是講特殊字符替換掉,或者轉換爲當前環境能夠正常顯示的。
一、將特殊字符找出來替換掉
若是這些內容中老是那幾個特殊字符,能夠將這些字符整理出來,統一替換掉正常的字符。ide

string sourceString = "特殊字符";
string destString = sourceString.Replace("特殊字符","普通字符");

二、轉碼
對於特殊字符較多的,難以收集的能夠直接進行編碼轉換而後輸出。這個結果會形成特殊字符丟失,由於一旦編碼不識別就顯示?了。
這種狀況適用於,對特殊字符不要求顯示的情形。
例如,編碼

string ss1 = "高中?";

byte[] byteArray = System.Text.Encoding.GetEncoding("gb2312").GetBytes(ss1);

var sw = ToCommonString(byteArray, System.Text.Encoding.GetEncoding("gb2312"));

private static string ToCommonString(byte[] bytes, Encoding encode)
{
            string commonString = string.Empty;
            if (bytes != null)
            {
                int len = bytes.Length;
                for (int i = 0; i < len; i++)
                {
                    if (bytes[i] == 0) bytes[i] = 46;
                }
                commonString = encode.GetString(bytes);
            }
            return commonString;
}
相關文章
相關標籤/搜索