从 GPS 跟踪器获取不可读的字符串

Get unreadable string from GPS tracker

我从 GPS 跟踪设备获取了这个不可读的字符串,我需要解码这些信息以便在我的应用程序 (c#) 中使用它。

$A  grQ05Ah@‘)���ÿÿûÿÿ����°#~À‚¡U

但实际上我期望的是如下所示:

*HQ,XXXXXX,41,4#V1,time,A,**Lat**,N/S,**Lng**,W/E,000.00,000,date,FFFFFBFF,432,35,32448,334

如何在 C# 中将字符串转换为标准格式?

如您所见,我将数据转换为字节:

24-41-20-20-67-72-51-30-35-41-68-40-91-29-3F-3F-3F-FF-FF-FB-FF-FF-3F-3F-3F-3F-B0-23-7E-C0-82-A1-55

这完全取决于您的字符串最初是如何编码的。但基本思想是使用具有所需参数的转换函数。

您可以使用Encoding.GetString 适当编码的方法。

例如,如果您知道原始字符串在传输给您之前是以 UTF-8 格式编码的,您可以将其转换为

格式的字符串

string converted = Encoding.UTF8.GetString(bytesReceived);

它确实是一些二进制信息,如果您已经清楚地阅读了产品手册,那么它会说这个二进制文件的形成。

将数据转换为十六进制将得到类似这样的结果..

24-41-20-20-67-72-51-30-35-41-68-40-91-29-3F-3F-3F-FF-FF-FB-FF-FF-3F-3F-

然后你需要参考手册来了解这些十六进制数字的确切含义

ex--(在某些中文设备中)

2 bytes(24),  stand for standard mode
10 bytes,  is device'ID (41 20 20 67 72)
6 bytes, is time 
6 bytes, is data
8 bytes, is latitude
2 bytes, battery like this 06= 100% 05=80% 04=60% 03=40% 02=20% 01=10%
10 bytes is  longitude

** 您收到这些二进制文件是因为您要求它以二进制模式发送信息。