个别手机网页打开乱码问题一解

2022-07-13 16:27:09 浏览数 (1)

最近遇到一个客户,手机网站在苹果手机中的QQ浏览器中打开,是乱码。而在安卓手机就是正常的。

页面文件名index.html,站点是asp.net环境

开始,有这么几种猜测:

  1. html文件编码
  2. 页面制作的编码和声明编码矛盾
  3. html标准声明那块有冲突

于是,尝试对页面进行逐个删除,测试的方法,来回测试了十几次。得出如下结论:

  1. 页面内容比较少,测试的情况,苹果手机中的Q浏览器打开是正常的;
  2. 逐渐恢复页面内容的过程,又出现乱码;
  3. 尝试调整页面编码声明、html标准等,均无果;

后来,把页面代码放到另外一台服务器(linux系统),测试发现苹果的打开正常。

于是,认为是不是服务器配置的问题,仔细看了下出现乱码的站点的http响应头,发现如下情况

content-type响应一个带着编码utf-8,一个不带编码。带着uft-8编码的苹果打开正常,不带utf-8编码的,打开乱码。

异常响应

代码语言:text复制
 HTTP/1.1 200 OK
 Cache-Control: private
 Content-Type: text/html
 Content-Encoding: gzip
 Last-Modified: Thu, 23 Nov 2017 02:57:28 GMT
 Accept-Ranges: bytes
 ETag: "7d3358cc664d31:0"
 Server: Microsoft-IIS/7.5
 Date: Thu, 23 Nov 2017 04:12:37 GMT
 Content-Length: 2059

正常响应

代码语言:text复制

 HTTP/1.1 200 OK
 Cache-Control: private
 Content-Type: text/html; charset=utf-8
 Content-Encoding: gzip
 Server: Microsoft-IIS/7.5
 X-AspNet-Version: 4.0.30319
 Date: Thu, 23 Nov 2017 02:49:13 GMT
 Content-Length: 3838

因为服务器是

Windows Server 2008 R2 标准版 SP1 64位中文版

支持语言:.NET1.1/2.0/3.5/4.0/4.5、ASP、HTML、WAP

设置.net FrameWork版本 V4.0/V4.5(集成)

默认首页 index.aspx index.aspindex.htm  index.html 等

所以想着能不能把index.html换成index.aspx试下,可能响应头就变了。如果变了,问题应该就能解决。

修改页面文件index.html为index.aspx,问题解决了。

看了站点根目录的web.config里面有如下命令

代码语言:text复制
 globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8"

0 人点赞