Посмотрите на код:
var xmlhttp=getHTTPObject();
var post="test·test+test·";
xmlhttp.open('POST', 'test.asp?random='+Math.random(), true);
xmlhttp.setrequestheader("длина-контента",post.length);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = функция(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200 ){
оповещение (xmlhttp.responseText);
вернуть истину;
}
}
xmlhttp.send("act="escape(post));
Здесь я отправил строку escape("test·test+test·") в режиме POST и использовал setRequestHeader.
При получении ее на стороне ASP я использовал
<%Response.CodePage=936%>.
<%Response.Charset="gb2312"
Response.Write Unescape(Request("act"))
%>
Наконец, после отладки вы видите, что ни «·», ни «+» не отображаются.
Сначала я подумал, что это результат несовместимости escape и unescape в asp и javascript. Позже я использовал vbsunescape (как показано ниже) вместо unescape, и проблема осталась прежней.
<script Language="javascript" runat="server">
function vbsunescape(source){
вернуть unescape(источник);
}
</скрипт>
Я убрал +, но не знаю, как это сделать. Во что это преобразуется? Изначально я хотел записать это в двоичный файл, чтобы увидеть (это должен быть двоичный файл), но для работы я использовал поток. двоичный файл под asp. Я продолжаю делать ошибки при создании файлов. У меня нет времени на это. Есть еще много дел, поэтому я пока оставлю эту проблему. эксперты, которые видят этот блог. Если вы решите эту проблему, дайте мне знать. Спасибо!
функция escape2(str){
return escape(str).replace(/+/g,"%2b");
}
-----------------------------------------------
Я видел ответы всех, спасибо всем. Впитав суть мыслей каждого, я наконец понял это. . . .
Окончательное идеальное решение заключается в том, что
отправитель может использовать encodeURIComponent(escape(xxxxxxx)) (остальные коды отправки и получения такие же, как указано выше).
Я только вчера попробовал encodeURI и не подумал о методах encodeURIComponent и escape-сокетах. теперь я вдохновилась и попробовала, это круто, ОХЕА! Иди ешь! !