ASP.NET国际化

来源:互联网 发布:如何制作数据透视图 编辑:程序博客网 时间:2024/06/10 06:12
ASP.NET国际化  
  编码支持
  本地化支持
  配置设置
--------------------------------------------------------------------------------
编码支持
ASP.NET 在内部使用 Unicode。此外,ASP.NET 还使用 .NET 框架类库中的 String 类和相关的实用工具函数,它们也是内部 Unicode。与外界连接时,可以用几种方法来配置 ASP.NET 以使用已定义的编码,包括 .aspx 文件的编码、请求数据和响应数据。例如,可以用 Unicode 编码方式存储 .aspx 文件并将页的 HTML 输出转换为 ANSI 代码页,如 ISO-8859-1。

本地化支持

通过 CultureInfo 类可以访问区域设置的属性。此外,ASP.NET 基于每个线程和请求跟踪默认区域性的两个属性:用于区域设置相关函数默认值的 CurrentCulture,和用于区域设置特定的资源数据查找的 CurrentUICulture。

以下代码显示了 Web 服务器上的区域性值。注意:CultureInfo 类是完全限定的。

<%@Import Namespace="System.Globalization"%>
...
<%=CultureInfo.CurrentCulture.NativeName%>
<%=CultureInfo.CurrentUICulture.NativeName%>

结果如下:


English (United States)
English (United States)
对于如日期/时间格式或货币这样与区域设置相关的数据,ASP.NET 使用公共语言运行库中的 .NET 框架类库支持。ASP.NET 页上的代码可以使用与区域设置相关的格式化例程,如 DateTime.Format。例如,下列代码以长格式显示当前日期:第一行依照系统区域设置,第二行依照德语 (“de”) 区域设置:

<%=DateTime.Now.ToString("f")%>
<%=DateTime.Now.ToString("f", new System.Globalization.CultureInfo("de-DE"))%>

结果如下:


06
06

配置设置
创建 ASP.NET 页或代码隐藏模块时,开发人员可以使用 .NET 框架类库为全球化环境或本地化应用程序提供必要的功能。ASP.NET 还提供使 ASP.NET 应用程序的开发和管理变得容易的配置设置。

ASP.NET 使用配置文件来提供通常也由子目录继承的目录设置。每个文件都可以包含 Globalization 节,在其中可以指定默认的编码和区域性。如果值为相关的类 Encoding 和 CultureInfo 所接受,则它们是有效的。在 .NET 框架 SDK 中可以找到有关 Encoding 和 CultureInfo 类的更多信息。

<configuration>
  <system.web>
    <globalization
      fileEncoding="utf-8"
      requestEncoding="utf-8"
      responseEncoding="utf-8"
      culture="en-US"
      uiCulture="de-DE"
    />
  </system.web>
</configuration>

在 Globalization 节中,fileEncoding 的值决定 ASP.NET 编码 .aspx 文件的方式,requestEncoding 和 responseEncoding 的值决定请求数据和响应数据的编码方式。
Web.config 文件中的 Globalization 节的属性也可以在 Page 指令上指定(fileEncoding 除外,因为它应用于文件本身)。这些设置仅对特定页有效并且重写 Web.config 文件的设置。下列示例指令指定页应对响应使用“法语”区域性设置和 UTF-8 编码:

<%@Page Culture="fr-FR" UICulture="fr-FR" ResponseEncoding="utf-8"%>

注意:在页内,可以通过设置 Thread.CurrentCulture 和 Thread.UICulture 以编程方式更改区域性值。


本节小结
ASP.NET 支持 .aspx 文件、请求数据和响应数据的广泛编码。
CultureInfo 类提供对区域设置相关数据的支持,在该类中跟踪两个值 CurrentCulture 和 CurrentUICulture。
可以为每台计算机、每个目录和每页配置国际化设置