Conteúdo chinês parte
Vamos primeiro ver como o formulário de texto eletrônico é enviado:
A cópia do código é a seguinte:
<ScriptLanguage = "javascript">
stra = "submit1 = submet & text1 = scsdfsd";
varoreq = newActivexObject ("msxml2.xmlHttp");
oreq.open ("post", "http: //servername/vdir/ttsult.asp", false);
Oreq.SetRequestHeader ("Length-comprimento", Stra.Length);
Oreq.SetRequestHeader ("Content-Type", "Application/X-Www-Form-Urlencoded");
Oreq.send (Stra);
</Script>
Se stra = "submeter1 = submeter & text1 = scsdfsd"; é substituído por: stra = "submit1 = submit & text1 = chinês";
Você descobrirá que a coisa enviada não está certa, e o request.form ("text1") no ASP não pode obter o valor. Eu usei o request.binaryRead para escrever o conteúdo da postagem em um htmlform e li, e então encontrei o problema - o formulário também precisa ser codificado ao enviar, e o chinês codificado é um caractere escapado semelhante a %?? %??. Por exemplo, "chinês" é codificado como:%d6%d0%ce%c4. Haha, eu também sou muito estúpido. Estou claramente escrito no Type de conteúdo-Application/X-Www-Form-Form-Urlencoded, é claro que é assim que o Urlencoded se parece. Como é esse o caso, também sabemos o que fazer - faça a conversão você mesmo, veja o código abaixo:
A cópia do código é a seguinte:
Functurlencoding (Vstrin)
strreturn = ""
Fori = 1tolen (vstrin)
Thischr = MID (vStrin, i, 1)
Ifabs (ASC (thischr)) <& hfftthen
strreturn = strreturn & theChr
Outro
InnerCode = ASC (Thischr)
IfinnerCode <0Then
InnerCode = InnerCode+& H10000
Endif
High8 = (InnerCodeand & Hff00)/& hff
LOW8 = INERCODEAND e HFF
strreturn = strreturn & "%" & hex (Hight8) & "%" e hexade
Endif
Próximo
Urlencoding = strreturn
Função final
Stra = Urlencoding ("Submit1 = Submit & text1 = Chinês")
oreq = createObject ("msxml2.xmlHttp")
Oreq.open "post", "http: //servername/vdir/ttsult.asp", false
Oreq.setRequestHeader "Length-topn", Len (Stra)
Oreq.SetRequestHeader "Tipo de conteúdo", "Application/X-Www-Form-Urlencoded"
Oreq.sendstra
</Script>
(Aqui mudei o código JavaScript anterior para VBScript. Eu não precisei fazer nada depois de estar cheio. Veja o motivo)
Parte II. Exibir corretamente o conteúdo chinês obtido
OK, se você escrever o conteúdo do formulário no banco de dados/arquivo no lado do servidor, não há problema com os chineses que você vê lá, mas se você quiser ver a resposta do servidor - o problema é: se o resultado da resposta não for xml, é claro que não existe uma coisa em xmlHttp.Responsexml, use o responseTXt e adicione uma se sentença no final do all of the all of the the codexml. Veja os resultados de nosso trabalho duro.