使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

ASP.NET 支持语音列

为了根据需要自定义此列,我们邀请你提交有关你感兴趣的主题以及你希望在将来的知识库文章和支持语音列中解决的问题的想法。 可以使用“询问”表单提交你的想法和反馈。 此列底部还有一个指向窗体的链接。

简介

欢迎! 这是 Microsoft ASP.NET 开发人员支持团队的 Sukesh Khare。 这是我第一次创作支持语音列。 我期待着在未来几个月内创作更多此类专栏。

在本月的专栏中,我将讨论 Active Server Pages (ASP) 和 ASP.NET 中的全球化问题、我们在 ASP 中遇到的问题、ASP.NET 1x 中的情况发生了怎样的变化,以及全球化方面 ASP.NET 2.0 的情况。

注意 如果遇到不理解的术语,请参阅此列底部的术语表部分。

ASP 中的全球化问题

在 ASP.NET 之前,没有针对全局用户开发应用程序的结构化支持。 在 ASP 的早期开发过程中,像我这样的开发人员发现,在操作系统、浏览器、ASP 和后端系统中,只支持全球化。 但是,我们很少在这些应用程序中观察到任何自动连接。 幸运的是,我们确实了解了字符集、代码页、浏览器语言和字体等概念,我们可以利用这些概念为全局用户开发应用程序。

很难将我们 ASP.NET 看到的所有全球化问题分为类别。 相反,我将列出一系列与这些问题相关的概念。

字符集和代码页

我们都知道计算机屏幕上的字符只是一系列字节。 可以通过多种方式创建和解释字节系列。 如果解释使用的编码不同于创建字节数组时使用的编码,则解释将显示为垃圾。 字符集 (字符集) 是浏览器通常使用的编码格式。 Codepage 属性更适用于服务器端转换,它只是指定字符编码方式的转换表。

浏览器根据当前字符集对表单 post 数据进行编码。 如果当前字符集为“windows-1256”,则到服务器的字节传输也编码为“windows-1256”。

解释 ASP 时,在代码中引用窗体和 Querystring 集合之前,不会生成这些集合。 生成时,字符串数据会根据当前代码页转换为 Unicode。 (默认情况下,ASP 和 ASP.NET 使用 Unicode 格式) 处理内容。 在引用集合之前设置正确的代码页非常重要;否则,内存中的 Unicode 表示形式将不正确。

若要设置代码页,请使用 Session.Codepage 或 Response.Codepage。 Response.Code 页仅在 Microsoft Internet Information Services (IIS) 5.1 或更高版本中可用。 有关整数值 (对应于我们要设置这些属性的字符集) 的信息,请访问以下 Microsoft 网站:

字符集识别
http://msdn2.microsoft.com/en-us/library/Aa752010.aspx例如,若要设置阿拉伯语的代码页,请使用以下代码:

Session.Codepage = 1256

Response.Codepage 将仅影响当前响应。 但是,Session.Codepage 将影响当前用户所做的所有响应。 使用其中一个属性设置代码页并生成 Form 和 Querystring 集合时,当前代码页中的此更改会导致 Response.Write 方法将内存中的 Unicode 转换为当前代码页。 有关本主题的详细信息,请访问以下 MSDN 网站:

将字符串转换的代码页 (ASP) http://msdn2.microsoft.com/en-us/library/ms525789.aspx当涉及到与字符集和代码页相关的问题时,底线是客户端字符集和服务器代码页应匹配。

接受语言

如果 ASP 开发人员想要知道用户在浏览器中设置了哪些语言,开发人员可以使用 Request.ServerVariables (“HTTP_ACCEPT_LANGUAGE”) 变量来查找用户希望阅读响应的语言列表, ((如英语、德语或印度语) )以及用户希望查看这些语言的首选项顺序。 在 ASP.NET 中,类似信息以数组的形式显示在 Request.UserLanguages 属性中。
有关如何在 ASP 代码中使用此信息的详细信息,请单击下面的序列号以查看 Microsoft 知识库中的文章:

229690 如何根据浏览器的语言设置设置设置 ASP 区域设置 ID
 

在 Internet Explorer 中显示多字节字符集

唯一可以显示多字节字符集的编码格式是 Unicode (UTF-8) 。 使用 UTF-8,我们可以在同一页上显示西里尔文、印度文和日语。 如果不使用 UTF-8,一次只能显示其中一种语言。 若要设置浏览器的字符集,请使用 Response.CharSet 属性。

页面上的静态多字节字符

若要显示直接存储在页面中的多字节字符,必须先使用特定编码保存页面。 UTF-8 最好,但特定代码页 (与字符的代码页匹配,) 也将正常工作。

使用 Microsoft Visual InterDev 保存 ASP 文件在这里没有帮助,因为 Visual InterDev 只能以 ANSI 英语或 Unicode 保存。 ASP 不支持保存为 Unicode 的任何 ASP 页。

在 Microsoft Visual Studio .NET 中,可以将文件保存为任何编码。 有两种方法可以执行此操作。 默认方法是使用用户的当前代码页保存文件。 使用编码保存文件的另一种方法如下:
在“ 文件 ”菜单上,单击“ 将文件另存为”。 在
文件另存为”对话框中,单击“保存”按钮上的
下拉箭头。 单击箭头时,选项为“保存”和“
使用编码保存”。 单击“使用编码保存
时,将显示“高级保存选项”对话框,你可以在其中从计算机上安装的代码页列表中选择要应用的编码类型。


注意 这会更改保存操作的编码,但只保留一次。 下一次保存将设置为默认值。

若要更改默认代码页,请单击“文件”菜单上的
高级保存选项”。 在“ 高级保存选项 ”对话框中,可以将保存操作的默认编码设置为所选的代码页。

这些方法与文件在磁盘上的保存方式相关。 但是,若要控制 ASP 的输出,如前所述,我们需要设置 Session.CodePage 和 Response.CharSet 属性。 对于 IIS 5.1 和更高版本,我们也可以使用 Response.CodePage 属性。

服务器上的默认 CODEPAGE

页面的默认区域设置和默认代码页取决于 的注册表设置。默认用户。 可以在注册表配置单元中找到国际密钥 HKEY_USERS\.DEFAULT\Control Panel\International。 还可以更改 IIS 选择的区域设置的行为。

如果登录用户的区域设置与上述键或系统默认设置相同,则用户设置优先。

示例:默认区域设置的日期格式设置为 11.1.2004,而具有相同区域设置的登录用户 () 的日期格式为 2004 年 11 月 1 日。 11/1/2004 设置将对 ASP 生效。

(对于 ASP.NET,情况可能会有所不同。 在某些安装中,ASPNET 用户将具有自己的配置文件,该配置文件将在加载时显示在HKEY_USERS下。 在其他人中,它将使用 。默认配置文件。 还可以在 <%@ %> 声明中使用 codepage 属性。 在保存文件时,应使用其他编码(如 codepage 932 (日语) ) )保存文件。

代码页问题与字体转换问题:哪个是哪一个?

有时,你可能会看到问号 ( ) 字符或显示字符的框。

代码页转换问题

当字符替换为问号 (?) 字符时,这表示发生了代码页转换问题。 问号 (?) 是代码页转换的默认字符,基本上意味着操作系统不知道如何处理和转换字符值。 它将字符值替换为问号 (?) 。 这可能意味着字符具有代码页的无效值,或者未安装转换所需的代码页。

字体转换问题

当字符替换为框时,这表明发生了字体转换问题。 如果客户端未安装正确的字体来正确显示此字符,则会出现此情况。 例如,如果字符来自日语字符集,并且客户端未安装日语字体,则日语字符显示为一个框。

接下来,我将讨论 ASP.NET 1.x 中的情况如何变化,以及这些变化如何影响 ASP.NET 背景下的全球化问题。

ASP.NET 1.x 中的全球化问题:

通过 ASP.NET,引入了三个伟大的东西:

  • web.config 文件中
    的 <全球化> 标记 <全球化> 标记使我们远离代码页和字符集的不连贯概念,并允许我们控制 ASP.NET 内的大多数变体。

  • System.Globalization 命名空间
    全球化命名空间为我们提供了处理全球化的编程能力。

  • 资源文件的概念得到了很大的改进。
    我们不以在 ASP 中所用的方式处理资源文件。 现在,在设计和开发资源文件时,这些资源文件采用 XML 文件的形式,它们在运行时以程序集的形式存在。

全球化配置标记:

标记中的两个重要设置如下所示:

<globalization 
            requestEncoding="utf-8" 
            responseEncoding="utf-8"  />

其他可能的设置区域如下:

fileEncoding

指定 .aspx、.asmx 和 .asax 文件分析的默认编码。 无论 fileEncoding 的值如何,都会自动识别使用字节顺序标记前缀 (保存的 Unicode 和 UTF-8 文件) 。

文化

指定用于处理传入 Web 请求的默认区域性 (适用于 System.Globalization 命名空间) 类的方法。

uiCulture

指定用于处理依赖区域设置的资源搜索的默认区域性 (附属程序集) 。

有关区域性字符串 (区域性值和 uiculture) 的详细信息,请访问以下 Microsoft 网站:

System.Globalization.CultureInfoClass
http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo (vs.71) .aspx这些设置由 ASP.NET 在响应完成后以及请求移交给应用程序之前应用。 对于 responseEncoding,为存储输出而创建的缓冲区设置为此编码。 进入此缓冲区的所有内容将在插入缓冲区时根据设置进行编码。

对于 requestEncoding,运行时将读取请求并根据本节中的设置对其进行解释。 但是,此设置可能会导致问题。 下表显示了有效 UTF-8 字节序列的位布局。

如果字符值属于 ASCII 7 位标准,则不修改字节值。 如果值高于 127,则必须遵循以下规则。 前导位集显示序列中的字符数。 第一个字节后的每个字节必须以第一个位设置为 1 开头。

UTF-8 字节布局:

字节

表示

1

7

0vvvvvvv

2

11

110vvvvvv 10vvvvvv

3

16

1110vvvv 10vvvvvv 10vvvvvvv

4

21

11110vvv 10vvvvvv 10vvvvvv 10vvvvvvv

这就是问题所在。 如果浏览器根据单字节编码 ((如 iso-8859-1) )对请求进行编码,则上述布局中超过 127 的值将无效。 当它们读入 UTF-8 缓冲区时,只需从输出中删除无效字符。

运行时编码更改

在 Application_BeginRequest 事件中,我们可以修改 requestEncoding 的值,并在处理请求之前使其生效。 对于响应,Page_PreRender 事件是修改输出编码的最后机会。 另请注意,一旦调用 Response.Write,就会将字符放入此缓冲区,因此在使用 Response.Write 之前,请务必设置正确的编码。

原始数据不是 Unicode:如何仍然使 Internet Explorer 解释多字节字符集?

如果需要,还可以使 ASP.NET 的行为类似于 ASP。 为此,我们需要将 responseEncoding 和 requestEncoding 设置为 windows-1252 (比 iso-8859-1) 更完整的编码,并使用 Response.Charset 属性正确显示文本。 这之所以有效,是因为 windows-1252 是一个单字节编码方案,并且不会修改添加到缓冲区的任何字节。 因此,双字节字符作为一系列单字节发送。 然后,我们可以告诉 Internet Explorer 如何使用 Response.Charset 属性解释字节。 如果原始数据未存储为 Unicode 或 UTF-8(例如 COM 对象的返回值),或者数据存储在 Microsoft SQL Server 中的非 N 字段 ((如 varchar) ),则此方案可能是必需的。

SQL Server和 ASP.NET 全球化问题

将 Unicode 数据输入到SQL Server

在 SQL Server 中存储数据的最佳方式是利用 Unicode。 每当使用 INSERT、UPDATE 等时,如果 Unicode 数据的可能性最小,则需要在值之前添加 N。 这会告知数据库该值为 Unicode。 ADO 对象就是一个很好的例子。 如果我们使用 Recordset 对象添加新记录,则它们会自动执行此操作。

下面是一个示例:

INSERT INTO MusicAlbum (Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'Abida', 4653, 403)
Or:
Dim t As String = "INSERT INTO MusicAlbum(Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'" & TextBox1.Text & "', 4653, 403)"
SQL Server的日期/时间输入

通常,我们了解在 ASP.NET 应用程序中解释的日期/时间的区域性和区域设置。 但是,在向外部源推送和拉取日期/时间数据时,我们存在错误解释日期/时间格式的风险。 这是因为我们无法始终保证外部源的区域性和区域设置与应用程序中的区域性和区域设置相同。 在SQL Server可以通过在与 SQL 数据库建立的连接的连接字符串中使用“当前语言”属性来解决此问题。 我们可以在 connectionstring 中提供与应用程序中的区域性相同的语言设置。 这可以保护我们免受误解的风险,因为SQL Server始终接受并使用上述设置以同意方式发送日期/时间数据。

System.Globalization 命名空间

此命名空间是.NET Framework中全球化和本地化的核心。 此命名空间中使用的main类是 CultureInfo 类。 它保存特定于区域性的信息,例如日期/时间格式、数字格式、比较信息和文本信息。 有关 CultureInfo 类的详细信息,请访问以下 MSDN 网站:

http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo (vs.71) .aspxCultureInfo

非特定区域性与特定区域性

非特定区域性是与语言(而不是特定国家/地区)关联的区域性。 特定区域性与语言和特定国家/地区相关联。

例如:“DE” (中性文化) 用于德语,但“de-AT” (特定文化) 适用于在奥地利使用的德语。 非特定区域性不能用于格式设置。

.NET Framework类的当前线程和区域性感知

.NET Framework库中所有类和方法(其中输出依赖于区域性)都有两种内置行为:

  • 它们允许我们在提供参数时指定区域性代码,以便输出基于指定的区域性。 这是可选的。

  • 如果错过了 (通常是) ,则类足够智能,因此在 Thread.CurrentThread.CurrentCulture 属性上保留检查,并据此工作。

可以使用类似于以下内容的代码修改此属性的值:

    Dim ci As CultureInfo
        ci = New CultureInfo("de-AT")
        Thread.CurrentThread.CurrentCulture = ci

在此代码示例中,“de”表示德语,“AT”表示奥地利。 因此,在此实例中,DateTime.Now () 。ToString 方法将返回日期和时间的格式与奥地利德语中日期和时间的表示方式相对应。

框架确保始终初始化 CurrentCulture 属性) (如下所示:

  1. 无论它以编程方式设置为什么。

  2. 如果程序员未显式设置属性,则从配置文件 (<全球化> 标记) 选取属性。

  3. 如果其中缺少 属性,则为运行 Web 服务器的区域性。 这通常是对应于操作系统语言的中性区域性。

资源文件

添加到 Visual Studio .NET 中 ASP.NET 项目的所有 .resx、.resource 文件和“生成操作”属性设置为“嵌入资源”的文件都会作为其清单的一部分自动编译并嵌入到应用程序程序集中。 甚至可以通过 Visual Studio .NET 命令提示符使用资源文件生成器 (RESGEN) 实用工具手动完成此操作。 有关详细信息,请访问以下 MSDN 网站:

http://msdn2.microsoft.com/en-us/library/ccec7sz1 (vs.71) .aspx这是一个通用概念,每当我们需要管理与全球化无关的应用程序资源时,它都适用。 但是,在实现全球化时,应使用附属程序集。

附属程序集

确保满足以下条件时,可以在 ASP.NET 项目中使用附属程序集:

  1. 所有 aspx 文件中的所有用户界面元素都需要配备 id 和 runat=server 属性。

  2. 我们创建单独的 .resx 文件。 每个区域都必须对应于我们希望应用程序支持的每个区域性。

  3. 对于例如,我们必须为所有这些文件确定一个公用名字。 “Strings”。

  4. 我们使用以下命名约定将单独的 .resx 文件命名 为 commonfirstname。languagecode-regioncode.resx (例如:Strings.de-AT.resx、Strings.en-GB.resx ) 。

  5. 我们应具有资源文件
    commonfirstname.resx (Strings.resx) ,其中包含我们想要在默认情况下显示的所有字符串。

  6. 编写代码以检测用户的区域性,并将 Thread.CurrentThread.CurrentUICulture 属性设置为与之匹配。

  7. 编写代码以使用 ResourceManager 类加载资源。

  8. 编写代码以从加载的对象中提取字符串,并将其分配给用户界面元素。

执行这些步骤后,Visual Studio.NET 将编译 Strings.resx 并将其嵌入应用程序程序集 (MyGlobalizationTestProjectName.dll) 。 但是,对于所有其他 .resx 文件,它将生成单独的 dll 文件,这些文件没有可执行代码,而只有资源数据。 这些实际上称为附属程序集。 此外,Visual Studio .NET 将这些内容放置在文件夹结构中,如下所示:MyGlobalizationTestProjectName
|------- bin
|------en-US

MyGlobalizationTestProjectName.resources.dll |------ja-JP

MyGlobalizationTestProjectName.resources.dll |------de-AT
MyGlobalizationTestProjectName.resources.dll

CurrentCulture 和 CurrentUICulture 之间的差异

虽然 System.Globalization 命名空间中的类的方法依赖于 Thread.CurrentThread.CurrentCulture 属性来提供其输出,但加载资源程序集的 ResourceManager 类依赖于 Thread.CurrentThread.CurrentUICulture 属性来加载相应的附属程序集。 下面是 C# 代码示例:

using System.Globalization;
using System.Threading;
using System.Resources;

//Load resources. 
protected ResourceManager gStrings = new ResourceManager("MyGlobalizationTestProjectName.strings", typeof(MyTestWebFormName).Assembly);

// Get the user's preferred language.
string sLang = Request.UserLanguages[0];
// Set the thread's culture for formatting, comparisons, etc.   
Thread.CurrentThread.CurrentCulture =  CultureInfo.CreateSpecificCulture(sLang);
// Set the thread's UICulture to load resources
// from satellite assembly.
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sLang);

private void Page_Load(object sender, System.EventArgs e) 

{ 

 if (!IsPostBack)  

 {      
// Get strings from resource file and assign to UI elements.
head1.InnerHtml = gStrings.GetString("satellite.head1");
p1.InnerHtml = gStrings.GetString("satellite.p1");
sp1.InnerHtml = gStrings.GetString("satellite.sp1");
sp2.InnerHtml = gStrings.GetString("satellite.sp2");
butOK.Text = gStrings.GetString("satellite.butOK");
butCancel.Value = gStrings.GetString("satellite.butCancel");
   }

 }

ASP.NET 选择附属程序集的顺序:

设置线程的 CurrentUICulture 后,ASP.NET 按以下顺序自动选择匹配的资源:

  • 如果找到具有匹配区域性的附属程序集,则会使用该程序集中的资源。

  • 如果找到具有与 CurrentUICulture 匹配的中性区域性的附属程序集,则会使用该程序集中的资源。

  • 如果未找到 CurrentUICulture 的匹配项,则使用存储在可执行程序集中的回退资源。

注意 这基于更常规的资源回退过程。 有关详细信息,请访问以下 MSDN 网站:

http://msdn2.microsoft.com/en-us/library/sb6a8618 (vs.71) .aspx

手动创建附属程序集:

这种附属程序集的使用是 Visual Studio .NET 创建程序集本身的位置。 但是,默认情况下,Visual Studio .NET 不会强名称附属程序集。 如果要更改这些选项,则需要手动创建附属程序集。 有关详细信息,请访问以下 MSDN 网站:

http://msdn2.microsoft.com/en-us/library/21a15yht (vs.71) .aspx

ASP.NET 2.0 在全球化方面有何影响?

ASP.NET 的广泛使用,以及我们在 ASP.NET 2.0中的全球化特征方面看到的各种问题,还有一些距离。 但是,最好简要了解全球化方法面向 Web 应用程序的方向。

ASP.NET 2.0 中的全球化支持发生了根本性的变化,Web 开发人员能够像本地化基于 Windows 的应用程序一样轻松实现 Web 应用程序本地化。 下面是作为 ASP.NET 2.0 中全球化方法基础的功能列表:

强类型资源 .NET Framework 2.0 版本的核心是支持强类型资源,这些资源为开发人员提供 Intellisense,并简化了在运行时访问资源所需的代码。

托管资源编辑器 Visual Studio .NET 2.0 包括一个新的资源编辑器,它更好地支持创建和管理资源条目,包括字符串、图像、外部文件和其他复杂类型。

Web Forms Windows 窗体开发人员的资源生成已经享受了自动国际化的好处。 Visual Studio .NET 2005 现在将通过自动生成Web Forms、用户控件和母版页的资源来支持快速国际化。

改进的运行时支持 ResourceManager 实例由运行时管理,服务器代码可通过更易于访问的编程接口进行访问。

本地化表达式 网页的现代声明性表达式支持映射资源条目以控制属性、HTML 属性或静态内容区域。 这些表达式也是可扩展的,提供了其他方法来控制将本地化内容附加到 HTML 输出的过程。

自动区域性选择 管理每个 Web 请求的区域性选择可以自动链接到浏览器首选项。

资源提供程序模型 新的资源提供程序模型允许开发人员在备用数据源(如平面文件和数据库表)中托管资源,而用于访问这些资源的编程模型保持一致。

有关 ASP.NET 2.0 中的全球化方法的详细信息,请访问以下 MSDN 网站:

ASP.NET 2.0 本地化功能:http://msdn2.microsoft.com/en-us/library/ms379546 (VS.80) .aspx 本地化 Web 应用程序
的新方法

结论

现在,这就是 ASP 和 ASP.NET 中的全球化问题。 我希望本文能帮助一些客户在选择联系Microsoft 支持部门之前,在 ASP 和 ASP.NET 中排查其全球化问题。 最后,我将考虑以下想法:

“无论你在何处和何时发展,想想你可以为世界各地的数百万人提供支持。 使解决方案面向世界! Microsoft 工具和技术使国际化变得更容易。”

下个月我们将再次赶上另一个有趣的话题。

谢谢您的时间。

有关 ASP 和 ASP.NET 中的全球化问题的详细信息,请参阅以下 Microsoft 网站:

vbscript
http://msdn2.microsoft.com/en-us/library/5xf99h19.aspx 中的 SetLocale 和 GetLocale

全球化分步
http://msdn.microsoft.com/en-us/goglobal/bb688110

走向全球:使用 IIS 5.0 和 SQL Server本地化动态Web 应用
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx

走向全球:设计基于 ASP 的网站以支持全球化
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx

315616如何在 IIS
http://support.microsoft.com/?id=315616 中的活动服务器页页中检测客户端语言

区域设置 ID (LCID) 图表
http://msdn2.microsoft.com/en-us/library/0h88fahh.aspx

System.Globalization 命名空间
http://msdn2.microsoft.com/en-us/library/system.globalization (vs.71) .aspx

使用 .NET Framework SDK
http://msdn2.microsoft.com/en-us/library/aa309421 (VS.71) .aspx 的资源和本地化

ASP.NET 应用程序中
的资源 http://msdn2.microsoft.com/en-us/library/1ztca10y (vs.71) .aspx

ASP.NET <全球化> 配置元素
http://msdn2.microsoft.com/en-us/library/hy4kkhe0 (vs.71) .aspx

Web 客户端的设计和实施指南 - 全球化和本地化
http://msdn2.microsoft.com/en-us/library/ms978628.aspx

Microsoft 官方网站 - 全球开发和计算门户
http://msdn.microsoft.com/en-us/goglobal/bb688096

开发面向世界的应用程序
http://msdn2.microsoft.com/en-us/library/h6270d0z (vs.71) .aspx

适用于 ASP.NET http://msdn2.microsoft.com/en-us/library/aa478974.aspx
全球化体系结构

企业本地化工具包 - 用于开发本地化的 Microsoft ASP.NET 应用程序
http://msdn2.microsoft.com/en-us/library/aa479334.aspx

Microsoft 版式
http://www.microsoft.com/typography/default.mspx

词汇

ANSI 代表美国国家标准协会。 在此上下文中,它表示特定语言/字符集的特定代码页。 大多数情况下, (windows-1252) 引用英语代码页。

ASCII A 1 字节 (或 7 位) 编码方案。 仅标准化范围 0-127 中的字符。 范围 128-255 是 ASCII 的扩展,不是标准的一部分。 例如,OEM ASCII 图表的上限范围与 VB ASCII 图表之间的差异。

字符集设置主要用于 Internet Explorer 和告诉浏览器如何解释字符数据的浏览器。 示例:Response.charSet = “iso-8859-1”。

Codepage 一个转换表,指定字符的编码方式 (通常用于服务器) 。

全球化是一个设计和创建应用程序的过程,以便满足文化、区域或国家/地区和语言需求的独特要求。 换句话说,以以后可以本地化的方式设计应用程序是全球化。

区域设置/区域性语言和特定于区域的格式/首选项,包括日期和时间格式、时间格式、货币格式、大小写、排序和字符串比较、地址格式、电话号码格式、纸张大小、度量单位、书写方向等。

LocaleID (LCID) 指定语言标识符和排序 ID 的 DWORD 值。 它可用于指定应根据格式设置日期/时间等的特定区域格式。

本地化能力 应用程序提供所需语言/区域设置内容的能力。

本地化本地化是将用户界面翻译成特定语言和/或区域设置的过程。

多字节字符集 一个字符集,其中字符由两个或更多个字节组成,例如日语。 UTF-8 也属于此类别。 (Unicode 在技术上属于此类别,但在 Windows 中,它有自己的类别。)

Unicode 一个 2 字节编码方案。 Windows 在内部使用 Unicode。 特定于 Unicode 的任何 API 都由函数名称末尾的“W”表示。 也称为宽字符;不能直接从 Web 应用程序使用。

UTF-8 一种字符编码,其中字符可以由 1-6 个字节表示。 在 Windows 中,范围为 1-3 个字节。 在 NT4 下不支持 Web 应用程序。



宽字符集 Unicode 的别名。 也称为 DBCS (双字节字符集) 、UCS-2、UTF-16。

和往常一样,可以使用“询问”表单,随时提交有关将来的列或知识库中要处理的主题的想法。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×