中国語のコンテンツをパートポストします
まず、eテキストフォームの送信方法を見てみましょう。
コードコピーは次のとおりです。
<ScriptLanguage = "JavaScript">
stra = "submit1 = submit&text1 = scsdfsd";
varoreq = newActiveXObject( "msxml2.xmlhttp");
oreq.open( "post"、 "http://servername/vdir/tstresult.asp"、false);
oreq.setRequestheader( "Content-Length"、Stra.length);
oreq.setRequestheader( "content-type"、 "application/x-www-form-urlencoded");
oreq.send(stra);
</script>
stra = "submit1 = submit&text1 = scsdfsd";置き換えられます:stra = "submit1 = submit&text1 =漢字";
提出されたものはまったく正しくなく、ASPのRequest.Form( "text1")が値をまったく取得できないことがわかります。 request.binaryreadを使用して投稿コンテンツをhtmlformで書き込み、読み取りました。その後、問題も発信する必要があることがわかりました。エンコードされた中国語は、%??%??たとえば、「中国」は次のようにエンコードされています:%d6%d0%CE%C4。ハハ、私もとても愚かです。私はContent-Type-Application/x-www-form-urlencodedで明確に書かれています。もちろん、これはUrlencodedがどのように見えるかです。それは事実なので、私たちは何をすべきかを知っています - 自分で変換を行います。以下のコードを参照してください。
コードコピーは次のとおりです。
functionLencoding(vstrin)
strreturn = ""
fori = 1tolen(vstrin)
thischr = mid(vstrin、i、1)
IFABS(ASC(thisChr))<&hfftthen
strreturn = strreturn&thischr
それ以外
innercode = asc(thischr)
ifinnercode <0then
innercode = innercode+&h10000
endif
high8 =(innercodeand&hff00)/&hff
low8 = innercodeand&hff
strreturn = strreturn& "%"&hex(hight8)& "%"&hex(low8)
endif
次
urlencoding = streturn
エンド機能
stra = urlencoding( "submit1 = submit&text1 =中国語")
oreq = createObject( "msxml2.xmlhttp")
oreq.open "post"、 "http://servername/vdir/tstresult.asp"、false
oreq.setRequestheader "Content-Length"、Len(Stra)
oreq.setRequestheader "Content-Type"、 "Application/x-www-form-urlencoded"
oreq.sendstra
</script>
(ここでは、以前のJavaScriptコードをVBScriptに変更しました。いっぱいになってから何もする必要はありませんでした。理由をご覧ください)
パートII。取得した中国のコンテンツを正しく表示します
フォームのコンテンツをサーバー側にデータベース/ファイルに書き込む場合、そこに表示される中国人に問題はありませんが、サーバーの応答を確認したい場合 - 問題は次のとおりです。私たちの努力の結果を見てください。