接收到一组数据里面包含了内容为F8的数据节;一般的ASCII码最大值为7F。
如果按照GB2312解析 则会出现一个奇怪的中文字符鳦,猜测是因为中文解析方式发现某字节大于ASCII的限度7F后,就会按照双字节解析汉字,因此将F8和后一位43,组合解析成汉字,此时解析结果如下
13-Oct-2022
10:57
150
6.22pH
21.5鳦 ATC
Auto EP Standard
Blank
如果按照扩展ASCII解析,在C#下通过如下代码获得
Encoding encoding = Encoding.GetEncoding(437);
采用该方式解析出来的数据为°C,其中F8代表°,43代表C
原始数据:
31 33 2D 4F 63 74 2D 32 30 32 32 0D 0A 31 30 3A 35 37 0D 0A 31 35 30 0D 0A 36 2E 32 32 70 48 0D 0A 32 31 2E 35 F8 43 20 41 54 43 0D 0A 41 75 74 6F 20 45 50 20 53 74 61 6E 64 61 72 64 0D 0A 42 6C 61 6E 6B 0D 0A 0D 0A 0D 0A 0D 0A
13-Oct-2022
10:57
150
6.22pH
21.5°C ATC
Auto EP Standard
Blank
关于编码437,这个应该是IBM对普通ASCII码扩充之后的编码格式
标签:C#,32,31,扩展,0A,0D,解析,ASCII From: https://www.cnblogs.com/ankoo/p/16790948.html