我面臨着非常奇怪的問題,其中我有byte [],當我傳遞給Convert.UTF8.GetString(byte [] bytes)方法時,系統編碼是搞亂了我的字節,只用幾個特殊的字節(我在系統中用作標記)替換爲三個char字符串表示形式。C#Encoding.UTF8弄亂了字節[]
[0] 70 byte
[1] 49 byte
[2] 45 byte
[3] 86 byte
[4] 49 byte
[5] 253 byte <-- Special byte
[6] 70 byte
[7] 49 byte
[8] 45 byte
[9] 86 byte
[10]50 byte
[11]253 byte <-- Special byte
[12]70 byte
[13]49 byte
[14]45 byte
[15]86 byte
[16]51 byte
當我通過上面byte []到Encoding.UTF8.GetString(字節)的方法我得到以下輸出;
實際值不應該有' ',因爲這意味着它沒有編碼並用' '代替這些特殊字節。無論如何,我可以解決這個問題,即轉換爲字符串並將特殊字節表示保留爲單個字符。
我有以下特殊字節,我試圖用作標記;
byte AM = (byte) 254
byte VM = (byte) 253
byte SM = (byte) 252
您的幫助和意見將不勝感激。
感謝,
-
Sheeraz
謝謝...我必須手動完成它,因爲要求是將UTF-8編碼的所有內容都編碼爲我的數據庫僅爲UTF-8。我現在我沒有將任何東西轉換成字符串,但只處理字節。 – SJunejo 2012-04-24 22:27:47
@SJunejo k,但請注意:您目前的策略**不是UTF-8 **。您的數據庫將完全處於您的權利爆炸範圍之內。 – 2012-04-24 22:30:24