⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cultureencoding.aspx

📁 书籍教程 >> .Net教程 >> asp.net编程精彩百例
💻 ASPX
字号:
<%@ Register TagPrefix="Acme" Namespace="Acme" Assembly="QSTools" %>
<%@ Register TagPrefix="Acme" TagName="SourceRef" Src="/quickstart/aspplus/util/SrcRef.ascx"%>

<!-- #include virtual="/quickstart/aspplus/include/header.inc" -->

<h4>设置区域性和编码</h4>

<div class="indent" style="font-family:Verdana; font-size:8pt;">
<b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
<a class="toc2" href="#encodings">编码</a><br>
<b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
<a class="toc2" href="#cultureinfo">使用 CultureInfo</a><br>
<b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
<a class="toc2" href="#region">使用 RegionInfo</a><br>
<b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
<a class="toc2" href="#summary">本节小结</a><br>
</div>

<p>
<hr>

<!--BEGIN SECTION--> <a name="encodings"><span class="subhead">编码</span>

<p>
在内部,ASP.NET 处理所有 Unicode 形式的字符串数据。通过在下面的示例中使用 <b>ResponseEncoding</b> 属性,还要求 ASP.NET 发送 UTF-8 编码的页。注意,可选择任何任意编码,而不会影响 .aspx 文件。ASP.NET 还根据 <b>ResponseEncoding</b> 的值,在 HTTP 标头的 <b>Content Type</b> 上设置 <b>CharSet</b> 属性。这使浏览器能够在没有元标记或无须从内容猜测正确编码的情况下确定编码。
<p>

<Acme:LangSwitch runat="server">
  <CsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/localize/i18n/CS/i18n_encodings.aspx"
  ViewSource="/quickstart/aspplus/samples/localize/i18n/i18n_encodings.src"
  Icon="/quickstart/aspplus/images/encoding1.gif"
  Caption="C# i18n_encodings.aspx"
  runat="server" />
  </CsTemplate>
  <VbTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/localize/i18n/VB/i18n_encodings.aspx"
  ViewSource="/quickstart/aspplus/samples/localize/i18n/i18n_encodings.src"
  Icon="/quickstart/aspplus/images/encoding1.gif"
  Caption="VB i18n_encodings.aspx"
  runat="server" />
  </VbTemplate>
  <JsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/localize/i18n/JS/i18n_encodings.aspx"
  ViewSource="/quickstart/aspplus/samples/localize/i18n/i18n_encodings.src"
  Icon="/quickstart/aspplus/images/encoding1.gif"
  Caption="JScript i18n_encodings.aspx"
  runat="server" />
  </JsTemplate>
</Acme:LangSwitch>

<p>

<b>注意:</b>如果某些字符显示为空矩形,则必须安装对日语和希伯来语的附加语言支持。若要在 Windows 2000 平台上执行该操作,请在“控制面板”上打开“区域选项”,然后添加所需的语言支持。

<p>

上述示例说明如何在同一页上使用不同的区域字符集。该页包含英文文字 (ASCII)、德文文字(含一个变音符号)、日文文字和希伯来文文字(使用 dir=&quot;rtl&quot;)。该页本身的源是以代码页非特定 UTF-8 编码形式存储的,正如 Web.config 中指定的那样。

<div class="code"><xmp>
<configuration>
  <system.web>
    <globalization
       fileEncoding="utf-8"
       ...
    />
  </system.web>
</configuration>
</xmp></div>
<p>

<b>Page</b> 指令在该页本身上指定 <b>ResponseEncoding</b>:

<div class="code"><pre>
&lt;%@Page ... ResponseEncoding="utf-8"%&gt;
</pre></div>
<p>

<b>注意:</b>Web.config 中的 <b>ResponseEncoding</b> 也以 UTF-8 的形式指定,因此在该页上重复它是多余的。但是,如果将 .aspx 文件移动到不使用 UTF-8 的服务器,该文件仍会指定正确的编码。


<!--BEGIN SECTION--> <br> <a name="cultureinfo"><br> <span class="subhead">使用 CultureInfo</span>
<p>

ASP.NET 页上的代码可使用 <b>CultureInfo</b> 类提供本地化设置。在下面的示例中,区域性(最初是服务器的区域性)的属性以如下方式设置:

<p><Acme:TabControl runat="server">
<Tab Name="C#">
culture = CultureInfo.CurrentCulture;
</Tab>

<Tab Name="VB">
culture = CultureInfo.CurrentCulture
</Tab>

<Tab Name="JScript">
culture = CultureInfo.CurrentCulture;
</Tab>

</Acme:TabControl><p>

如果提交了新区域性的名称,则将改用该名称:
<p><Acme:TabControl runat="server">
<Tab Name="C#">
culture = new CultureInfo(NewCulture.Value);
</Tab>

<Tab Name="VB">
culture = New CultureInfo(NewCulture.Value)
</Tab>

<Tab Name="JScript">
culture = new CultureInfo(NewCulture.Value);
</Tab>

</Acme:TabControl><p>

提交的区域性设置为新的默认值并显示某些属性:
<p><Acme:TabControl runat="server">
<Tab Name="C#">
&lt;%
Thread.CurrentThread.CurrentCulture = culture;
%&gt;
...
Current Culture is &lt;%= CultureInfo.CurrentCulture.Name %&gt;
(&lt;%=Thread.CurrentThread.CurrentCulture.Name%&gt;),
&lt;%= CultureInfo.CurrentCulture.EnglishName %&gt;/&lt;%=CultureInfo.CurrentCulture.NativeName%&gt;,
The localized date is: &lt;%= DateTime.Now.ToString("D", CultureInfo.CurrentCulture) %&gt;
</Tab>

<Tab Name="VB">
&lt;%
Thread.CurrentThread.CurrentCulture = culture
%&gt;
...
Current Culture is &lt;%= CultureInfo.CurrentCulture.Name %&gt;
(&lt;%=Thread.CurrentThread.CurrentCulture.Name%&gt;),
&lt;%= CultureInfo.CurrentCulture.EnglishName %&gt;/&lt;%=CultureInfo.CurrentCulture.NativeName%&gt;,
The localized date is: &lt;%= DateTime.Now.ToString("D", CultureInfo.CurrentCulture) %&gt;
</Tab>

<Tab Name="JScript">
&lt;%
Thread.CurrentThread.CurrentCulture = culture;
%&gt;
...
Current Culture is &lt;%= CultureInfo.CurrentCulture.Name %&gt;
(&lt;%=Thread.CurrentThread.CurrentCulture.Name%&gt;),
&lt;%= CultureInfo.CurrentCulture.EnglishName %&gt;/&lt;%=CultureInfo.CurrentCulture.NativeName%&gt;,
The localized date is: &lt;%= DateTime.Now.ToString("D", CultureInfo.CurrentCulture) %&gt;
</Tab>

</Acme:TabControl><p>

<p>
<Acme:LangSwitch runat="server">
  <CsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/localize/i18n/CS/i18n_cultureinfo.aspx"
  ViewSource="/quickstart/aspplus/samples/localize/i18n/i18n_cultureinfo.src"
  Icon="/quickstart/aspplus/images/encoding2.gif"
  Caption="C# i18n_cultureinfo.aspx"
  runat="server" />
  </CsTemplate>
  <VbTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/localize/i18n/VB/i18n_cultureinfo.aspx"
  ViewSource="/quickstart/aspplus/samples/localize/i18n/i18n_cultureinfo.src"
  Icon="/quickstart/aspplus/images/encoding2.gif"
  Caption="VB i18n_cultureinfo.aspx"
  runat="server" />
  </VbTemplate>
  <JsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/localize/i18n/JS/i18n_cultureinfo.aspx"
  ViewSource="/quickstart/aspplus/samples/localize/i18n/i18n_cultureinfo.src"
  Icon="/quickstart/aspplus/images/encoding2.gif"
  Caption="JScript i18n_cultureinfo.aspx"
  runat="server" />
  </JsTemplate>
</Acme:LangSwitch>


<!--BEGIN SECTION--> <br> <a name="region"><br> <span class="subhead">使用 RegionInfo</span>
<p>

ASP.NET 页上的代码还可以使用 <b>RegionInfo</b> 类提供区域设置。下面的示例显示了区域属性。最初显示的是服务器的默认区域。

<p><Acme:TabControl runat="server">
<Tab Name="C#">
region = RegionInfo.CurrentRegion;
...
Current region is &lt;%= region.EnglishName %&gt; (&lt;%=region.DisplayName%&gt;),
currency is &lt;%= region.CurrencySymbol %&gt;.
</Tab>

<Tab Name="VB">
region = RegionInfo.CurrentRegion
...
Current region is &lt;%= region.EnglishName %&gt; (&lt;%=region.DisplayName%&gt;),
currency is &lt;%= region.CurrencySymbol %&gt;.
</Tab>

<Tab Name="JScript">
region = RegionInfo.CurrentRegion;
...
Current region is &lt;%= region.EnglishName %&gt; (&lt;%=region.DisplayName%&gt;),
currency is &lt;%= region.CurrencySymbol %&gt;.
</Tab>

</Acme:TabControl><p>

在后面的请求中显示输入的区域:
<p><Acme:TabControl runat="server">
<Tab Name="C#">
region = new RegionInfo(NewRegion.Value);
</Tab>

<Tab Name="VB">
region = New RegionInfo(NewRegion.Value)
</Tab>

<Tab Name="JScript">
region = new RegionInfo(NewRegion.Value);
</Tab>

</Acme:TabControl><p>

<Acme:LangSwitch runat="server">
  <CsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/localize/i18n/CS/i18n_regional.aspx"
  ViewSource="/quickstart/aspplus/samples/localize/i18n/i18n_regional.src"
  Icon="/quickstart/aspplus/images/encoding3.gif"
  Caption="C# I18N_Regional.aspx"
  runat="server" />
  </CsTemplate>
  <VbTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/localize/i18n/VB/i18n_regional.aspx"
  ViewSource="/quickstart/aspplus/samples/localize/i18n/i18n_regional.src"
  Icon="/quickstart/aspplus/images/encoding3.gif"
  Caption="VB I18N_Regional.aspx"
  runat="server" />
  </VbTemplate>
  <JsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/localize/i18n/JS/i18n_regional.aspx"
  ViewSource="/quickstart/aspplus/samples/localize/i18n/i18n_regional.src"
  Icon="/quickstart/aspplus/images/encoding3.gif"
  Caption="JScript I18N_Regional.aspx"
  runat="server" />
  </JsTemplate>
</Acme:LangSwitch>


<h4><a name="summary">本节小结</a></h4>
<ol>
<li>ASP.NET 可以使用以 UTF-8 编码形式存储的页来支持不同的区域字符。
<li>可以编程方式设置和使用 <b>CultureInfo</b> 类以本地化页。
<li><b>RegionInfo</b> 类可用于在 ASP.NET 上提供区域设置。
</ol>

<!-- #include virtual="/quickstart/aspplus/include/footer.inc" -->









⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -