刚开始写ASP+程序时候碰到的第一个比较大的问题就是中文显示问题,运行后发现ASP+从数据库中读取出来的中文全部变
成了?????????????,有点类似jsp中的这个频率出现最高的中文显示问题了,查了资料发现有两种方法可以轻松解决中文问题。
方法一:
.Net Framework无法正确显示中文的问题,只需在程序执行的目录中(无论这个目录是否为虚拟目录)创建一个名为web.config的文件并在文件中输入以下内容:
web.config
<configuration>
<location>
<system.web>
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>
</system.web>
</location>
</configuration>
文件创建成功后,简体中文显示的问题便可以解决.
提示:如果需要正常显示繁体中文,则需将requestEncoding 与 responseEncodin 的值均设置为"big5"
使用web.config文件只能解决程序当前目录上的中文问题,并不能解决主机中所有目录的中文显示问题。
配置整个主机中文显示问题的方法是,修改主机的配制文件machine.config.本文件一般在.Net目录的Config中。如C:/Winnt/Microsoft.Net/Framework/v1.02914/config/machine.config.
打开此文件,找到以下代码:
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>
将其requestEncoding 与 responseEncoding属性改为"gb2312"(简体中文)或者"big5"(繁体中文)即可。
方法二:
后来订阅了微软的新闻组,在微软的新闻组dotnet.framework.aspplus.general中发现有讨论这
个问题的文章,方法为添加<%@ CODEPAGE = "936" %>到每一页的开头,有点类似于jsp中的
<%@ page contentType="text/html;charset=gb2312"%>
赶紧测试了一下,果然OK!!!
例子如下面所示:
<%@ CODEPAGE = "936" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.ADO" %>
<%@ Import Namespace="System.Globalization" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>