Contenido chino Partipost
Primero veamos cómo se envía el formulario de texto electrónico:
La copia del código es la siguiente:
<ScriptLanguage = "javaScript">
stra = "Subt1 = Subt & Text1 = SCSDFSD";
varoreq = newActivexObject ("msxml2.xmlhttp");
Oreq.open ("post", "http: //servername/vdir/tstresult.asp", falso);
Oreq.setRequestHeader ("Content-longitud", stra.length);
Oreq.SetRequestHeader ("Content-type", "Application/x-www-form-urlencoded");
Oreq.send (Stra);
</script>
If stra = "Subt1 = Subt & Text1 = SCSDFSD"; se reemplaza por: stra = "Subt1 = Subt & Text1 = chino";
Encontrará que lo enviado no es correcto, y el request.form ("text1") en ASP no puede obtener el valor en absoluto. Utilicé request.binaryRead para escribir el contenido de la publicación en una HTMLFORM y leerlo, y luego encontré el problema: el formulario también debe codificarse cuando se envía, y el chino codificado es un carácter escapado similar a %??? Por ejemplo, "chino" está codificado como:%d6%d0%CE%C4. Jaja, también soy muy estúpido. Estoy claramente escrito en el tipo de contenido: aplicación/x-www-form-urlencoded, por supuesto, así es como se ve UrlCoded. Como ese es el caso, también sabemos qué hacer: haga la conversión usted mismo, vea el código a continuación:
La copia del código es la siguiente:
FunctionUrlEncoding (Vstrin)
strreturn = ""
Fori = 1Tolen (Vstrin)
Thatchr = Mid (Vstrin, I, 1)
Ifabs (ASC (thatchr)) <& hfftthen
strreturn = strreturn y thatchr
Demás
innercode = asc (Thatchr)
Ifinnercode <0then
innerCode = innerCode+y H10000
Endif
High8 = (InnerCodeand & Hff00)/& Hff
Low8 = InnerCodeand & Hff
strreturn = strreturn & "%" & hex (Hight8) y "%" y hex (Low8)
Endif
Próximo
Urlencoding = strreturn
Función final
stra = URLEncoding ("Subt1 = Subt & Text1 = chino")
Oreq = createObject ("msxml2.xmlhttp")
Oreq.open "post", "http: //servername/vdir/tstresult.asp", falso
Oreq.SetRequestHeader "Content-longitud", Len (Stra)
Oreq.SetRequestHeader "Content-Type", "Application/X-WWW-form-urlencoded"
Oreq.SendStra
</script>
(Aquí cambié el código JavaScript anterior a VBScript. No tuve que hacer nada después de estar lleno. Vea la razón)
Parte II. Muestra correctamente el contenido chino obtenido
Ok, si escribe el contenido del formulario en la base de datos/archivo en el lado del servidor, no hay ningún problema con el chino que ve allí, pero si desea ver la respuesta del servidor, el problema es: si el resultado de la respuesta no es XML, por supuesto, no hay nada en xmlhtp.Responsexml, luego use el texto de respuesta y agregue una oración al final del código: alerta (alerta (alerta (alerta de text). Mira los resultados de nuestro arduo trabajo.