我从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
答案 0 :(得分:2)
它确实是一些二进制信息,如果您已经清楚地读出了产品手册,那么就说明了这些二进制文件的形成。
将数据转换为十六进制将提供类似的内容..
24-41-20-20-67-72-51-30-35-41-68-40-91-29-3F-3F-3F-FF-FF-FB-FF-FF-3F-3F-
然后您需要参考手册以了解这些十六进制数的确切含义
前 - (在某些中国设备中)
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
**您收到这些二进制文件是因为您已要求它以二进制模式发送信息。
答案 1 :(得分:0)
这完全取决于您的字符串最初是如何编码的。但基本思想是使用具有所需参数的变换函数。
您可以使用适当编码的Encoding.GetString 方法。
例如,如果您知道原始字符串在传输给您之前以UTF-8
格式编码,您可以将其转换为字符串
string converted = Encoding.UTF8.GetString(bytesReceived);