ASP は Web ページのエンコード コードを変換し、通常のマッチングを使用してページのエンコード ステートメントが gb2312 かその他かを判断して出力します。完全なサンプルコードは次のとおりです。
次のようにコードをコピーします。
<%@LANGUAGE=JAVASCRIPT コードページ=65001%>
<html>
<頭>
<meta http-equiv=コンテンツタイプ content=text/html;
<title>JavaScript は Web ページのエンコーディングを自動的に決定し、変換します</title>
</head>
<%Server.ScriptTimeout=9999999;
関数 send_request(url){
var コード化されたテキスト;
http_request = Server.CreateObject(Microsoft.XMLHTTP);
http_request.Open(GET,url,false);
http_request.Send(null);
if (http_request.ReadyState == 4){
//エンコードの開始を自動的に決定する
var charresult = http_request.ResponseText.match(/CharSet=(/S+)/>/i);
if (charresult != null){
var Cset = charresult[1];
}else{Cset = gb2312}//取得できない Web サイトには gb2312 エンコードを採用し、自分で変更できます
//エンコードの終了を自動的に判断する
コード化されたテキスト = bytesToBSTR(http_request.Responsebody,Cset);
}それ以外{
コード化されたテキスト = エラー;
}
return(コード化されたテキスト);
}
関数 bytesToBSTR(body,Cset){
変数オブジェクトストリーム;
objstream = Server.CreateObject(Adodb.Stream);
objstream.Type = 1;
objstream.Mode = 3;
objstream.Open();
objstream.Write(本体);
objstream.Position = 0;
objstream.Type = 2;
objstream.Charset = Cset;
bytesToBSTR = objstream.Readtext;
objstream.Close;
return(バイトからBSTR);
}%>
<本文>
<%Response.Write(send_request(http://www.vevb.com/404.htm))%>
</body>
</html>