我有一个编写C ++ / CLI
的串口应用程序要从端口输入缓冲区读取数据,我正在使用
String^ inputString = System::IO:Ports::SerialPort::ReadExisting();
我需要将inputString值转换为字节数组。我尝试过使用
array<Byte> ^unicodeBytes = System::Text::Encoding::Unicode->GetBytes( inputString );
只要读入我的端口输入缓冲区的值小于0x7F(十六进制),这就可以工作。任何大于0x7F
的值都会转换为0x3F
=“?”
E.g。如果我将两个包含{0x7F, 0xFF}
的字节发送到我的输入端口,那么当我在VS2008的调试器监视窗口中查看并将其转换为数组unicodeBytes = { 0x7F 0x00, 0x3F 0x00}
时
根据unicode表,我看过OxFF是一个有效的unicode值,等于拉丁小写字母'y',上面有两个小点。
如果将字符串格式中的两个小点= 0xFF的'y'转换为字节数组中的0xFF的任何建议都将非常感激。
答案 0 :(得分:0)
使用SerialPort
的{{1}}方法获取字节而不是解码编码文本:
Read