我試圖將一些字符串從UTF 16 LE轉換爲UTF 16 BE,但它無法編碼第二個中文字符。.NET C#從UTF 16 LE轉換爲UTF 16 BE失敗
樣品字符串:測試馨俞
代碼:
byte[] bytes = Encoding.Unicode.GetBytes(sendMsg.Text);
sendMsg.Text = Encoding.BigEndianUnicode.GetString(bytes)
我也試過
var encode = new UnicodeEncoding(false, true, true);
var messageAsBytes = encode.GetBytes(sendMsg.Text);
var enc = new UnicodeEncoding(true, true, true);
sendMsg.Text = enc.GetString(messageAsBytes);
這將導致以下錯誤:無法轉換字節[DE] [ 4F]在索引184從指定的代碼頁到Unicode的行:
sendMsg.Text = enc.GetString(messageAsBytes);
謝謝。
該代碼沒有任何意義,字符串總是用C#程序中的utf-16le編碼。無論如何,無論如何嘗試都會讓你的程序在代理上失敗。像U + DE4F一樣。你必須保存在一個字節[]中。或者解釋你真正想要解決的問題。 –
我試圖將字符串轉換爲UTF 16 BE。 Windows/C#上的默認字符串是UTF 16 LE。原因是我想將此消息發送給IBM大型機。 –
你不能使用'sendMsg.Text'。可能有什麼替代方案是完全不清楚的,當然也有一個,但是你不給我們一槍找到它。打電話給IBM支持,以獲得產品幫助,非零機會,因爲每個人都有這個問題,所以只需要進行配置設置。 –