Мой клиент использует классический ASP-скрипт для обработки формы от стороннего платежного процессора (это последний шаг в последовательности транзакций по кредитным картам, который начинается на веб-сайте клиента, переходит к третьему участника сайта, а затем возвращается на сайт клиента).
Клиент находится в Австрии, и когда одно из полей содержит 8-битный символ (например, когда значение поля равно Österreich), Ö просто удаляется, когда я получаю значение поля стандартным способом; e.g.:
fieldval = Request.Form("country")
If fieldval = "sterreich" Then
' Code here will execute
End If
Литеральное значение, которое сторонняя страница представляет собой POSTing, равно %D6sterreich
, что Я думаю, предполагает, что POST кодируется в UTF-8.
Запрос POST имеет следующие возможные заголовки:
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Content-Type: application/x-www-form-urlencoded
Я ни в коем случае не эксперт по кодированию символов, и я впервые действительно что-то сделал с Classic ASP, так что я немного растерялся.
Из некоторого поиска и поиска в Google я добавил на страницу, обрабатывающую POST, следующее:
<%@ Codepage=65001 %>
<%
Response.CharSet = "UTF-8"
Response.Codepage = 65001
%>
Но это не имеет значения - я все еще теряю этот начальный 8-битный символ. Есть ли что-то действительно простое, о чем я просто не знаю?