从 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
** 您收到这些二进制文件是因为您要求它以二进制模式发送信息。
我从 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
** 您收到这些二进制文件是因为您要求它以二进制模式发送信息。