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