C ++ / CLI从String ^转换为array <byte> </byte>

时间:2013-03-06 16:04:43

标签: string c++-cli bytearray

我有一个编写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的任何建议都将非常感激。

1 个答案:

答案 0 :(得分:0)

使用SerialPort的{​​{1}}方法获取字节而不是解码编码文本:

Read