windows2000服务器上的asp项目迁移到IIS7或IIS8以上中文乱码怎么办?中文版IIS7或者IIS8在默认输出编码时,http协议层默认输出为gb2312,不论你设置MIME类型的文件类型编码还是设置ASP.NET的全球化或者取消gzip压缩,都无法改变乱码的现象,那怎么办呢?
原来,IIS7以上提供了强大的个性化配置,你可以设置web.config的http协议层文件编码,这样就可以解决乱码问题了。
具体代码如下:
<?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>
将charset的值改为你要的编码值即可,比如gb2312
如果你不会操作代码,也可以直接打开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”);
也可以解决IIS7或IIS8的老项目乱码问题。