莫名其妙的異常003:“.”(十六進制值 0x00)是無效的字符
阿新 • • 發佈:2018-07-12
要求 static 當前 pri == 丟失 odin byte[] pla 讀取一個第三方的接口,返回的字符串在頁面顯示時總是提示:
“.”(十六進制值 0x00)是無效的字符。
這種錯誤一般大家也知道是因為有特殊字符的原因,無非就是講特殊字符替換掉,或者轉換為當前環境可以正常顯示的。
1、將特殊字符找出來替換掉
如果這些內容中總是那幾個特殊字符,可以將這些字符整理出來,統一替換掉正常的字符。 這種情況適用於,對特殊字符不要求顯示的情形。
例如,
“.”(十六進制值 0x00)是無效的字符。
這種錯誤一般大家也知道是因為有特殊字符的原因,無非就是講特殊字符替換掉,或者轉換為當前環境可以正常顯示的。
1、將特殊字符找出來替換掉
如果這些內容中總是那幾個特殊字符,可以將這些字符整理出來,統一替換掉正常的字符。
string sourceString = "特殊字符";
string destString = sourceString.Replace("特殊字符","普通字符");
2、轉碼
對於特殊字符較多的,難以收集的可以直接進行編碼轉換然後輸出。這個結果會造成特殊字符丟失,因為一旦編碼不識別就顯示?了。
例如,
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; }
莫名其妙的異常003:“.”(十六進制值 0x00)是無效的字符