个别utf8编码站点在iis7上客户端浏览器编码不能自动识别的编号,输入仍为gbk2312,而不是utf-8,这样导致我们看到的网站为乱码。
要解决这个问题,有两个方法,一为打开网站以后,右键,选择编码,然后选择utf-8,这样网站就显示正常了。当然这个法对于站长来说行不通,我们的网站是给人看的,没有人看网站会想到或是会去将客户端浏览器去手动改编码。
所以我们只能是选用第二个方法:
在站点根目录下面创建一个web.config文件,放入以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Content-Type" value="text/html; charset=utf-8" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
如果web.config已经存在,那么在
<system.webServer>
与
</system.webServer>之间放到以以代码
<httpProtocol>
<customHeaders>
<add name="Content-Type" value="text/html; charset=utf-8" />
</customHeaders>
</httpProtocol>
或是直接打开IIS操作处理。
首页打开IIS管理器,找到对应的站点,如图:
然选择HTTP响应标头,双击后如图:
添加一个http响应标头,让客户端浏览器强制输出为utf-8编码,http响应标头内容为:Content-Type:text/html;charset=utf-8
即名称为Content-Type,值为text/html;charset=utf-8
如图:
这样就完美解决了客户端浏览器仍然输入utf-8网站编码为gbk2312编码的问题。
如果编码在iphone里面还是显示乱码,可以直接在代码最开始定义编码,比如Php程序,在
<?php
后面加上
header("Content-type: text/html; charset=utf-8");
变成
<?php
header("Content-type: text/html; charset=utf-8");
也可以解决问题。