ASP技巧:使用國際WEB網站

來源:互聯網
上載者:User
web|技巧|網站 在 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 的值將覆蓋預設設定。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.