ASP系列讲座(二十二)使用国际站点
文章类别:
asp | 发表日期:2008-10-5 20:36:58
在 Internet 或 Intranet 上发布消息的一个优点是您可以建立一个用户可以从不同国家(地区)访问的国际化 Web 站点。用户可以申请已被本地化为当地语言的网页,使用浏览器的本地化版本阅读。在建立一个包含有多种语言网页的 Web 站点时,需要转换在浏览器与 Web 服务器间或 ASP 脚本与 ActiveX 组件间传递的字符串。例如,如果一个日文浏览器在 HTTP 请求中发送了表格或查询字符串值,此字符串必须从浏览器的日文字符集转化为 ASP 用于处理脚本的字符集。
如果 Web 站点上的所有页都用 Web 服务器所使用的默认字符集书写,那么 ASP 将自动进行转换。但是,如果网页是用其他的字符集写的,就必须用 ASP 命令指明如何转换字符串。例如,如果您的站点既有日文字符集的网页,又有中文字符集的网页,就必须指明 ASP 处理某一特定页时所用的字符集。
ASP 也提供了支持不同地区文化习惯的命令,如货币、时间和日期格式。同字符串转换命令一样,如果您的脚本没有使用 Web 服务器的默认现场,则要使用现场命令。
设置字符串转换代码页
代码页是一个内部表,操作系统用它将符号(字母、数字和标点符号)映射为字符编号。不同的代码页支持不同国家(地区)所使用的字符集。代码页通过编号引用,例如,代码页 932 代表日文字符集,代码页 950 代表繁体中文字符集。
Active Server Pages 和 ActiveX 脚本引擎在内部使用 Unicode,这是一种 16 位固定长度的字符编码标准。如果您编写的所有页都使用 Web 服务器的默认代码页,则 ASP 将自动转换字符串。如果您的脚本不使用 Web 服务器的默认代码页,则应该指明所用的代码页以便字符串在 ASP 和脚本引擎间传递时能被正确转换。另外,您也可以为在浏览器与脚本间或 ActiveX 组件与脚本间传递的字符串指定代码页。
要为 ASP 页指定代码页,可使用 CODEPAGE 指令。例如,设置日文代码页,可使用以下指令:
<%@ CODEPAGE= 932 %>
当 ASP 处理这一页的内容和脚本时,将使用您指定的代码页来决定如何将脚本中的字符从您的脚本的字符集转化为 Unicode。例如,在 ANSI 中代表字母 "a" 的值将被转化为在 Unicode 中代表字母 "a" 的不同的值。
Active Server Pages 假定在服务器和浏览器间或脚本和 ActiveX 组件间传递的字符串的代码页与您为脚本设置的代码页是相同的。若要指定不同的代码页,可以设置 Session.CodePage 属性,从而覆盖 CODEPAGE 设置。例如,您使用 JIS 书写脚本,但却要响应使用 UTF-8 的客户程序,(JIS 和 UTF-8 是标准日文字符集的两种不同的字符编码)。
Session.CodePage 默认设置为 CODEPAGE 指令的值;对该属性的设置将覆盖当前的 CODEPAGE 设置。例如,要将代码页改为繁体中文,可使用如下命令:
<% Session.CodePage = 950 %>
如果您只是临时更改部分脚本的代码页,在此之后一定要将 Session.CodePage 设置为原来的值。以下脚本显示如何临时更改代码页:
<!-- Welcome to my home page in Japanese, code page 932 --!>
<%@ CodePage = 932 %>
...
<% Session("OriginalCodePage") = Session.CodePage %>
<!-- Look up name in Chinese, code page 950 --!>
<% Session.CodePage = 950 %>
<% Sender = ReadMailHeader("Sender") %>
<% Found = FindFriend("Sender") %>
<!-- Restore the original code page --!>
<% Session.CodePage = Session("OriginalCodePage") %>
<% If Found == TRUE
ReplyWithPersonalizedForm()
else
ReplyWithBusinessForm()
%>
设置现场标识
现场是与用户语言相关的一组用户首选项信息。现场决定如何格式化日期和时间、项目;如何按字母排序以及如何比较字符串。现场标识 (LCID) 是唯一定义现场的 32 位数值。如果您没有为脚本指定不同的现场,那么 ASP 将使用 Web 服务器的默认现场。
要为 ASP 页设置现场标识,可使用 LCID 指令。例如,要设置日文现场,可使用下列现场 ID:
<%@ LCID = 1041 %>
LCID 指令告诉 ASP 书写脚本所用的现场。如果要更改脚本的输入或输出现场,可使用 Session.LCID 属性。例如,要将现场设置为标准法语,可使用如下命令:
<% Session.LCID = 1036 %>
Session.LCID 的默认设置为 LCID 指令的设置。在脚本中设置 Session.LCID 的值将覆盖默认设置。