西西河

主题:【注意】应该是好了,I HATE MICROSOFT!!。两边都可以用了 -- 铁手

共:💬17
全看分页树展 · 主题 跟帖
家园 可能的一个解释。。。

Response.CodePage

The CodePage property specifies how strings are encoded in the intrinsic objects. A codepage is a character set that can include numbers, punctuation marks, and other glyphs. Codepages are not the same for each language. Some languages, such as Japanese and Hindi, have multibyte characters, while others, like English and German, only need one byte to represent each character. The CodePage property is read/write.

Syntax

Response.CodePage [= CodePageID ]

Parameters

CodePageID

An integer representing the character formatting codepage. You can find codepage integers on MSDN Web Workshop under the column for FamilyCodePage.

Remarks

Setting Response.CodePage explicitly affects a single page, whereas Session.CodePage affects all responses in a session.

If Response.CodePage is not explicitly set in a page, it is implicitly set by Session.CodePage, if sessions are enabled. If sessions are not enabled, Response.CodePage is set by @CodePage, if @CodePage is present in the page. If there is no @CodePage in the page, Response.CodePage is set by the AspCodePage metabase property. If the AspCodePage metabase property is not set, or set to 0, Response.CodePage is set by the system ANSI codepage.

There can be only one codepage per response body, otherwise incorrect characters are displayed. If you set the codepage explicitly in two pages where one is called by the other with #include, Server.Execute, or Server.Transfer, usually the parent page decides the codepage. The only exception is if Response.CodePage is explicitly set in the parent page of a Server.Execute call. In that case, an @CodePage command in the child page overrides the parent codepage.

Literal strings in a script are still encoded by using @CodePage (if present) or the AspCodePage metabase property value (if set), or the system ANSI codepage. If you set Response.CodePage or Session.CodePage explicitly, do so before sending nonliteral strings to the client. If you use literal and nonliteral strings in the same page, make sure the codepage of @CodePage matches the codepage of Response.CodePage, or the literal strings are encoded differently from the nonliteral strings and display incorrectly.

If the codepage of your Web page matches the system defaults of the Web client, you do not need to set a codepage in your Web page. However, setting the value is recommended.

If the codepage is set in a page, then Response.Charset should also be set. The codepage value specifies to IIS how to encode the data when building the response, and the Charset value specifies to the browser how to decode the data when displaying the response. The CharsetName parameter of Response.Charset must match the codepage value, or mixed characters will be displayed in the browser. Lists of CharsetName parameters and matching codepage values can be found on MSDN Web Workshop under the columns for Preferred Charset Label and FamilyCodePage.

The file format of a Web page must be the same as the @CodePage used in the page. Notepad enables you to save files in UTF-8 format or in the system ANSI format. For example, if @CodePage is set to 65001 (indicating UTF-8), the Web file must be saved in UTF-8 format. If @CodePage is set to 1252 (indicating English or German), the Web file must be saved in ANSI format on an English or German system. If you want to save a page in the ANSI format for a language other than your system language, you can change your default System Locale settings in Regional and Language Options in the Control Panel. For example, after you change your system locale to Japanese, any files you save in ANSI format are saved using the Japanese codepage and are only readable from a Japanese system locale.

If you are writing and testing Web pages that use different codepages and character sets (for example, if you were creating a multilingual Web site), remember that your test client computer must have the language packs installed for each language you want to display. You can install language packs from Regional and Language Options in the Control Panel.

Example

The following example shows the home page of a multilingual site. The home page is saved in UTF-8 format so that characters from all languages can be shown. The home page redirects the client to a page of their language by using the ServerVariable HTTP_ACCEPT_LANGUAGE to discern the language of the client.

--- Default.asp ---

<%@ CodePage=65001 Language="VBScript"%>

<%

' Default.asp

' This file is saved in UTF-8 format.

' The codepage of the system doesn't matter because

' you are setting @CodePage, Response.CodePage, and Response.Charset.

' Otherwise, the system codepage of the server would be the default.

Response.CodePage = 65001

Response.CharSet = "utf-8"

' Redirect to the correct home page based on the client language.

Select Case Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")

Case "en-us", "en", "fr", "fr-fr", "es", "es-es", "zh", "zh-cn", "zh-tw"

Response.Redirect Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") & "Start.asp"

Case Else

%>

Welcome. Click <a href="enStart.asp">here</a> to go to the English Web site.<BR><BR>

Bienvenue. Cliquetez <a href="frStart.asp">ici</a> pour aller au Web site franais.<BR><BR>

Recepcin. Haga clic <a href="esStart.asp">aqu</a> para ir al Web site espaol.<BR><BR>

[Chinese characters with a link]<BR><BR>

[Taiwanese characters with a link]<BR><BR>

<%

End Select

%>

--- En-usStart.asp ---

<%@ Language="VBScript" %>

<% Response.Redirect "enStart.asp" %>

--- EnStart.asp ---

<%@ CodePage=1252 Language="VBScript"%>

<%

' enStart.asp

' This file is saved in ANSI format on a U.S. English system locale.

' The language of the system doesn't matter

' because you are setting @CodePage and Response.CodePage.

' Otherwise, the system codepage of the server would be the default.

Response.CodePage = 1252

Response.CharSet = "windows-1252"

Response.Write "<H1 align=center>News for Today</H1>"

%>

You can insert more content here, possibly using the <BR>

IIS ContentLinking component, the <BR>

IIS ContentRotator component, or the <BR>

IIS AdRotator component.<BR>

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河