ASP.NET中文显示之两种解决方法

来源:互联网 发布:java 内部构造方法 编辑:程序博客网 时间:2024/05/16 13:07

刚开始写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>