我要檢索SOAP調用和SQL Server調用一些Unicode字符串。然後,我必須將所有內容都轉換爲UTF7中的字節[],以便可以通過套接字將其發送到期望UTF7字符串的服務器。由於我必須在每個字符串之後插入控制字節,因此我不能只串聯字符串並使用一次Encoding調用。 (簡化代碼示例):轉換幾串成一個字節[]
Encoding enc = Encoding.UTF7;
byte[] bytes = new byte[16384];
int idx = 0;
bytes[idx++] = 11; // Starting control code
// create an array of strings from different sources.
string[] strs = GetTheStrings();
foreach (string str in strs)
{
bytes[idx] = enc.GetBytes(str); // Error
idx += enc.GetByteCount(str);
bytes[idx++] = 13; // line ending CR
}
bytes[idx] = 28; // ending control code
return bytes;
我從VS中得到一個錯誤,說enc.GetBytes(str); 「不能顯式轉換類型爲byte []以字節&增加了一些關於需要重寫編碼類爲什麼VS治療字節[IDX]不同於比方說,字節[]字節2 - ?它通過串基礎上串的作品我m用於C/++,Java和許多其他語言,但C#似乎總是讓我失望。我不想使用不安全的代碼塊來使用指針來執行此操作,因爲其他人不會不知道指針和內存管理將不得不維護它,因爲字節[idx]指的是單個字節,而不是它期望的數組,是否有某種類型的演員可以用來過去呢?一個更好的方法來使用?
我已經看過十幾個站點的示例代碼,但這個多字符串的問題永遠不會顯示。我應該加載每個字符串到一個單獨的字節[],然後合併它們在 結束?
無論是語言,你所提到的治療字節('字節[IDX]')作爲字節數組...你可能想從後編輯出無關的信息,以避免有關部分的討論。 –