记一次有意思的浏览器乱码问题

今天群里收到大量反馈,对外提供互联网访问的应用的内容展示都乱码了。经过排查发现,发现在内网访问是正常的,而通过互联网访问,用IE浏览器或者火狐是正常的,但用Chrome浏览器访问却是乱码

这就有意思了,不同浏览器的表现还不一样,那应该跟浏览器设置编码格式的方式有关。

 

Chrome浏览器上的内容是乱码,查看其返回的响应头中Content-Type已经设置了编码格式为UTF-8。接着下载Chrome的插件Charset,查看页面的编码格式却为GBK,然后修改页面的编码格式为UTF-8,内容正常显示。

这里就有问题了,Chrome浏览器并没有按照返回的响应头设置的编码格式来展示,而是采用它自身默认的编码格式GBK。

 

查阅资料(https://textslashplain.com/2020/05/15/meta-charset/),可大概知道,Chrome浏览器会在返回的响应头的前1024个字节中寻找是否有设置编码,如果没有,则认为没有专门设置编码格式而采用浏览器默认的编码格式。

这样判断的目的,估计是为了加速网页的渲染速度。而IE浏览器和火狐没有采用这种方式,应该是直接判断整个响应头里面设置的编码格式

 

后面经过打听知道,原来昨天晚上有做一次变更,就是在互联网入口的F5上给所有请求的返回响应头里插入了一段js代码,估计是为了数据埋点所用。这段js代码,直接导致了Chrome浏览器在获取响应头的前1024个字节都是这段js代码的内容,从而没办法读取到真正的编码格式而乱码!最后回滚了该变更,乱码问题解决。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值