Проблема кодирования классического ASP - PullRequest
2 голосов
/ 01 декабря 2008

У меня проблема с классическим ASP. Неправильная кодировка при отправке данных с XMLHttp.send. Ответ представляет собой файл PDF, но «ÆØÅ» ошибается, например, «Ø» читается как «¸y». Это похоже на ошибку преобразования UTF-8 в ISO-8859-1, но сейчас это должен быть ISO-8859-1. У меня <%@CODEPAGE="28591"%> вверху на странице и ISO-8859-1 как кодировка в файле XML, я проверил файл, чтобы он действовал ISO-8859-1. У меня нет доступа к серверу, на который я отправляю эти данные, но я исправил это в программе VB6, которая использует ту же логику с:

aPostBody = StrConv(strBody, vbFromUnicode)
WinHttpReq.SetTimeouts 100000, 100000, 100000, 1000000
WinHttpReq.Send aPostBody

И в программе на C #, которая также использует ту же логику с

// ISO-8859-1
byte[] bytes = Encoding.GetEncoding(28591).GetBytes(data);

Но в ASP classic мне нужна помощь, чтобы найти способ изменить кодировку строки на ISO-8859-1.

Ответы [ 8 ]

3 голосов
/ 01 декабря 2008

Вы пытались использовать Response.Charset и установить его так:

<% Response.Charset="ISO-8859-1"%>
3 голосов
/ 01 декабря 2008

Попробуйте:

Session.CodePage = 28591

Здесь есть некоторая полезная информация здесь , и я получил номер CodePage здесь .

2 голосов
/ 02 декабря 2008

Проверьте кодировку файла .ASP и всех файлов .ASP, включенных в #include.

Однажды у меня возникла проблема, когда я создал новый файл .ASP в VS и кодировал в UTF-8. Этот файл был добавлен другими, и кодировка файла «перезаписывает» все остальные команды кодирования.

0 голосов
/ 08 сентября 2015

Решение:

Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
Response.CodePage = 65001
Response.CharSet = "UTF-8

Complete: https://pt.stackoverflow.com/questions/80886/encoding-asp-cl%C3%A1ssico/81418#81418

0 голосов
/ 27 февраля 2009

Я использовал этот компонент как на ASP, так и на Javascript, но на javascript я нашел решение этой проблемы здесь: http://squio.nl/blog/2006/06/27/xmlhttprequest-and-character-encoding/

0 голосов
/ 02 декабря 2008
0 голосов
/ 02 декабря 2008

Вы пытались использовать тег meta, эквивалентный тому, что вы делаете?

Пример:

Response.Write("<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1' />")

Примечание: я использую Response.Write для вставки выплевывания кодировки, поскольку Visual Studio попытается сохранить файл с другой кодировкой, если, например, кодировка UTF-8.

0 голосов
/ 01 декабря 2008

AFAIK, это известная проблема с WinHttpReq / XMLHTTPRequest, надеюсь, кто-то докажет, что я неправ.

...