Партипост китайский контент
Давайте сначала рассмотрим, как отправляется форма электронного текста:
Кода -копия выглядит следующим образом:
<Scriptlanguage = "javascript">
stra = "Opper1 = отправить & text1 = scsdfsd";
varoreq = newAcatexObject ("msxml2.xmlhttp");
oreq.open ("post", "http: //servername/vdir/tstresult.asp", false);
oreq.setrequestheader ("длина контента", stra.length);
oreq.setrequestheader ("контент-тип", "Application/xww-form-urlencoded");
oreq.send (stra);
</Script>
Если stra = "Opport1 = отправить & text1 = scsdfsd"; заменяется на: stra = "отправить1 = отправить и text1 = китайский";
Вы обнаружите, что представленная вещь совсем не подходит, и запрос. Форма («Text1») в ASP не может получить значение вообще. Я использовал request.binaryRead, чтобы написать контент POST в HTMLFIRM и прочитать его, а затем я нашел проблему - форму также должна быть кодирована при отправке, а кодированный китайский язык - это сбежавший символ, похожий на %?? %? Например, «китайский» кодируется как:%D6%D0%CE%C4. Ха -ха, я тоже очень глуп. Меня ясно написано в типе контента-приложение/X-WWW-Form-Urlencoded, конечно, это то, на что выглядит Urlencoded. Поскольку это так, мы также знаем, что делать - сделайте конверсию самостоятельно, см. Код ниже:
Кода -копия выглядит следующим образом:
FunctionUrlencoding (vstrin)
strreturn = ""
Fori = 1tolen (vstrin)
Tharechr = середина (vstrin, i, 1)
Ifabs (asc (thastchr)) <& hfftthen
strreturn = strreturn & thechr
Еще
innerCode = ASC (ThastChr)
IfinnerCode <0Then
innerCode = innerCode+& H10000
Эндиф
HIGH8 = (InnerCodeAnd & HFF00)/& HFF
Low8 = innercodeand & hff
strreturn = strreturn & "%" & hex (hight8) и "%" & hex (low8)
Эндиф
Следующий
Urlencoding = strreturn
Конечная функция
stra = urlencoding ("отправить1 = отправить и текст1 = китайский")
oreq = createObject ("msxml2.xmlhttp")
oreq.open "post", "http: //servername/vdir/tstresult.asp", false
oreq.setrequestheader "длиной контента", Len (Stra)
oreq.setrequestheader "Контент-тип", "Application/xww-form-urlencoded"
Oreq.sendstra
</Script>
(Здесь я изменил предыдущий код JavaScript на VBScript. Мне не нужно было ничего делать после того, как я был заполнен. Смотрите причину)
Часть II. Правильно отобразить полученный китайский контент
Хорошо, если вы записываете содержимое формы в базу данных/файл на стороне сервера, нет проблем с китайцами, которых вы видите там, но если вы хотите увидеть ответ сервера - проблема: если результат ответа не является XML, конечно, в xmlhttp.responsexml нет rassetextextextextex. Посмотрите на результаты нашей тяжелой работы.