js websocket请教
js中websocke模拟发送消息,数据包里面有个特殊字符“Y”发过去不知道是编码问题还是啥问题,一直出现下面这种情况,十六进制都变了(纯小白{:1_918:},勿喷,因为有需求。临时接触的js websocket)进行编码转换了, websocket发送的数据是utf8编码的
ryosga 发表于 2022-5-21 15:49
进行编码转换了, websocket发送的数据是utf8编码的
嘿嘿嘿,那老哥怎么解决,用最简单的办法,能把这个特殊字符原模原样发过去就好。{:1_893:} 将你的html中的charset修改成<meta charset="UTF-8">,同时html文件及js文件都保存为utf8格式的,你再试试 unmask 发表于 2022-5-21 19:23
将你的html中的charset修改成,同时html文件及js文件都保存为utf8格式的,你再试试
我仔细看了下 原本的就这个html文件 没啥问题都是utf8 zzf971129 发表于 2022-5-21 20:52
我仔细看了下 原本的就这个html文件 没啥问题都是utf8
传送的c3d9是正确的,接受后再用utf8解码就Ok的 unmask 发表于 2022-5-21 21:28
传送的c3d9是正确的,接受后再用utf8解码就Ok的
我明白你的意思,不过你看,下面是原数据包,其实这个DD01根据发送内容的字节长度变化(箭头哪里),算法暂不明确,不过暂且不用管,就是它是直接把Y(十六进制DD)发过来的,我这边用js在发送的时候能不能让它直接发送过来
zzf971129 发表于 2022-5-22 08:35
我明白你的意思,不过你看,下面是原数据包,其实这个DD01根据发送内容的字节长度变化(箭头哪里),算法 ...
看你的调试hex,RC中就是dd01,也就是直接将Y的windows1252编码发送出来了,你的服务端用utf8来解析dd,无法解析就抛弃掉了吧,所以再转发给其他client时就没有Y了 unmask 发表于 2022-5-22 08:54
看你的调试hex,RC中就是dd01,也就是直接将Y的windows1252编码发送出来了,你的服务端用utf8来解析dd, ...
嘿嘿 ,大致流程差不多,我这边其实什么也不用做,只要把原数据除了某些变量,其他原模原样发给服务端就行,就是发送的时候用windows1252编码感觉应该就行,关键是webSocket.send()发送的时候怎么让它用windows1252编码,百度也搜不到太清楚的答案。
页:
[1]