Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ UWP和串行采样字节编码错误_C++_Unicode_Uwp_Uart - Fatal编程技术网

C++ UWP和串行采样字节编码错误

C++ UWP和串行采样字节编码错误,c++,unicode,uwp,uart,C++,Unicode,Uwp,Uart,首先,我要说我是UWP的新手。我最近下载了VS2017,并开始基于旧的C++/CLI Winform项目创建应用程序。这样做的原因是为了避免设备兼容性问题 解决这个问题 我遵循了这里提供的SerialUART示例代码 我已经能够成功地将基于arduino的设备中的数据连接并读取到UWP应用程序中。我遇到的问题是,应用程序经常抛出COMException错误:“目标多字节代码页中不存在Unicode字符的映射。” 它似乎是导致问题的同一个字符(或一组字符)。但是,当基于arduino的设备连接到a

首先,我要说我是UWP的新手。我最近下载了VS2017,并开始基于旧的C++/CLI Winform项目创建应用程序。这样做的原因是为了避免设备兼容性问题

解决这个问题

我遵循了这里提供的SerialUART示例代码

我已经能够成功地将基于arduino的设备中的数据连接并读取到UWP应用程序中。我遇到的问题是,应用程序经常抛出COMException错误:“目标多字节代码页中不存在Unicode字符的映射。”

它似乎是导致问题的同一个字符(或一组字符)。但是,当基于arduino的设备连接到arduino串行监视器时,数据完全按照预期打印出来。事实上,它甚至完全按照串行监视器上的显示保存到SD卡上

我使用了一个'try''catch'块来防止应用程序崩溃,并将错误打印在我用作终端窗口的文本块上,但错误似乎没有清除。每次收到新数据时,都会重新打印错误消息。 我已经证实,只有在测试启动和测试结束时打印的某些字符才是导致问题的原因,因为我在测试中途尝试连接到arduino设备,并获得了流式输出的测试数据,没有问题


那么,如何清除此异常错误?为什么在aruino串行监视器没有的情况下,UWP应用程序在某些字符上出现问题?

好的,所以我发现了问题所在。在我的arduino应用程序中,我发送了如下字符

²

°

arduino串行终端中发生的情况是,在打印平方符号或度符号之前,它打印出alt代码符号。它看起来像一个大写字母“a”,带帽子,然后打印符号

我猜这是arduino串行终端的一个怪癖,为了解决这个问题,我实际上能够将字符代码拆分(因为它们有两个字节宽)并只打印出字节的后半部分

VS2017 UWP出现了问题,因为它只看到了实际字符代码的一半,并且出现了抖动。去掉我提出的“修复”意味着它可以正确解释所有串行数据。VS足够聪明,知道在显示正方形符号或度符号等时不打印alt代码符号