windows2000服务器上的asp项目迁移到IIS7或IIS8以上中文乱码怎么办?

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管理器找到对应的站点,如下图:

IIS管理权

然选择HTTP响应标头,双击后如图:

http相应标头

添加一个http响应标头,让客户端浏览器强制输出为utf-8编码,http响应标头内容为:Content-Type:text/html;charset=utf-8

即名称为Content-Type,值为text/html;charset=utf-8

IIS添加自定义HTTP响应头

如图:

这样就完美解决了客户端浏览器仍然输入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的老项目乱码问题。

发表评论

电子邮件地址不会被公开。