6月18号日报内容
parent
d21fe8d2c9
commit
6845648a09
47
2024-6-18.-.md
Normal file
47
2024-6-18.-.md
Normal file
@ -0,0 +1,47 @@
|
||||
# 完成了什么?
|
||||
|
||||
主要是对昨天出现的问题进行调研,为什么修改之后设备之后,显示修改成功,却没有修改。有以下两个原因:
|
||||
|
||||
一: 设备本身不支持,无法进行修改。
|
||||
|
||||
二: 设备支持,但是参数不在设备允许范围内
|
||||
|
||||
三: 遇到错误没有返回ERROR的原因是,还是对项目没有更深入的了解,在遇见错误时,没有进行通知,导致程序不知道遇见错误,从而忽略,导致出现显示修改成功,却没有修改的问题。
|
||||
|
||||
还有就是设备名称中文乱码问题,旭哥对我说是因为UTF-8编码问题,我定位了很久没有定位出来,还是不够细心,没有考虑到xml本身就是使用utf-8编码的,对代码理解不深刻。
|
||||
|
||||
在定位到问题之后,我就开始查阅怎么打开将utf-8 转化为 Gb2312, 查阅了https://www.cnblogs.com/cheyunhua/p/15915130.html 发现使用 simplifiedchinese.HZGB2312.NewEncoder()进行转化处理。
|
||||
|
||||
然后我就使用该编码进行转换,但是还是乱码,就开始怀疑是不是这里的问题,就继续测试,将GB2312 转化成 UTF-8 发现也是乱码,最后确定是是自己转码错误所导致的问题,但是我经过google 和 百度之后,发现都是使用 simplifiedchinese.HZGB2312.NewEncoder() 函数将UTF-8 进行转化的,就没有怀疑,直至下班之前也没发现问题所在。
|
||||
|
||||
直到下班之后,蔡总给我说GBK可以完全兼容GB2312,然后我就使用了GB18030 进行编码转换,发现确实可以,那么我就思考,为什么HZGB2312编码不行呢?在经过了解之后,经过源码的阅读发现:
|
||||
|
||||
HZGB2312编码是基于ASCII 的编码和GB2312 的处理方式不同导致了字符的错误显示,HZGB2312主要用于这种编码在传输过程中使用了 ~{ 和 ~} 来切换到 GB2312 模式和返回到 ASCII 模式,所以乱码一般都包含~{ ,~{后面的字符就是GB2312编码。下午没有解决编码的主要原因是没有深入源码,通过源码阅读一切就明了了。
|
||||
|
||||
# 学到了什么?
|
||||
|
||||
1. 学到了如何进行编码转换,并以后尽量使用兼容性好的,遇见错误尽量多测试,考虑为什么会出现这样的情况,并深入源码,查找答案!
|
||||
|
||||
2. 学到了不能一头撞到墙上,需要多思考。
|
||||
|
||||
3. 更加深入源码,之前不知道观察者是干嘛的,通过对源码阅读和理解,得知通过观察者阻塞消息,判断设备发送的信令是否收到了,或者是否有错误,如果有错误的话,应该在Hander层进行相应的处理,例如通过Notify进行通知观察者错误消息,这样观察者就可以在server层向上抛出异常。
|
||||
|
||||
4. 根据文档理解了设备设置的其他功能,如设置录像计划等,并更加的熟练抓包分析信令,通过信令分析收发包是否正确。
|
||||
|
||||
|
||||
# 后续任务
|
||||
|
||||
将会观看级联相关代码,深入理解sdk相关代码
|
||||
|
||||
# 反思
|
||||
|
||||
没有认真的思考,没有认真深入源码,后续将会改正。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user