2
我有被寫入的C/CLIC++/CLI從字符串轉換^到陣列<Byte>
串行端口應用程序讀取來自端口的數據輸入緩衝器我使用
String^ inputString = System::IO:Ports::SerialPort::ReadExisting();
我需要將inputString值轉換爲一個字節數組。我一直在使用
array<Byte> ^unicodeBytes = System::Text::Encoding::Unicode->GetBytes(inputString);
這工作,只要在我的端口輸入緩衝區中讀取的值小於0x7F的(十六進制)嘗試。大於0x7F
的任何值都將轉換爲0x3F
=「?」
E.g.如果我發送包括{0x7F, 0xFF}
兩個字節來我輸入口,然後,當我讀到,並將其轉換陣列unicodeBytes = { 0x7F 0x00, 0x3F 0x00}
當在VS2008
的調試器監視窗口看着據我已經看過OXFF的Unicode表是一個有效的Unicode值等於一個拉丁字母'y',上面有兩個小圓點。
任何有關如何將字符串格式中的兩個samll點= 0xFF轉換爲'y'的建議,我們將不勝感激。
你想如果使用'ASCII'(或其他代碼頁)編碼,而不是'Unicode' :) – leppie 2013-03-06 16:08:11
您目標是讀取字節(二進制數據),然後不要使用讀取字符串的API。嘗試使用取得字節數組的Read方法。 http://msdn.microsoft.com/en-us/library/ms143549.aspx – 2013-03-06 18:30:04
感謝這兩個建議。讀取二進制數據正是我想要做的,所以我已經部署了Read方法,現在它的所有工作。謝謝你的提示。 – user2140597 2013-03-07 08:42:51