Veja o código:
var xmlhttp=getHTTPObject();
var post="teste·teste+teste·";
xmlhttp.open('POST', 'test.asp?random='+Math.random(), true);
xmlhttp.setrequestheader("comprimento do conteúdo",post.length);
xmlhttp.setRequestHeader("Tipo de conteúdo","aplicativo/x-www-form-urlencoded");
xmlhttp.onreadystatechange=função(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200 ){
alerta(xmlhttp.responseText);
retornar verdadeiro;
}
}
xmlhttp.send("act="escape(post));
Aqui, enviei a string escape("test·test+test·") em modo POST, e usei setRequestHeader.
Ao recebê-la no lado ASP, usei
<%Response.CodePage=936%>.
<%Response.Charset="gb2312"
Response.Write Unescape(Request("agir"))
%>
Finalmente, após a depuração, o resultado que você vê é que nem "·" nem "+" são exibidos.
A princípio pensei que fosse resultado da incompatibilidade de escape e unescape em asp e javascript. Mais tarde usei vbsunescape (como mostrado abaixo) em vez de unescape e o problema permaneceu o mesmo.
<script language="javascript" runat="server">
função vbsunescape(fonte){
retornar unscape(fonte);
}
</script>
Eu escapei do +, mas não sei como fazer isso. Em que ele foi convertido? Originalmente, queria gravá-lo em um arquivo binário para ver (deve ser um arquivo binário), mas usei o stream para operar o arquivo. arquivo binário em asp. Continuo cometendo erros ao criar arquivos. Não tenho tempo para fazer isso. Ainda há muitas coisas para fazer, então vou me contentar com algumas fugas por enquanto. os especialistas que veem este blog. Se você resolver, me avise, obrigado!
função escape2(str){
retornar escape(str).replace(/+/g,"%2b");
}
----------------------------------------------------------
Vi as respostas de todos, obrigado a todos. Depois de absorver a essência dos pensamentos de todos, finalmente descobri. . . .
A solução final perfeita é que
o remetente pode usar encodeURIComponent(escape(xxxxxxx)) (os outros códigos de envio e recebimento são iguais aos acima).
Só tentei encodeURI ontem e não pensei nos métodos encodeURIComponent e escape de repente. agora me inspirei e experimentei, é incrível, OHYEAH! Vá comer! !