2008-12-01 4 views
2

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

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 классический мне нужна помощь, чтобы найти способ, чтобы изменить кодировку строки в ISO-8859-1.

ответ

3

Try:

Session.CodePage = 28591 

Существует некоторая хорошая информация here, и я получил CodePage номер here.

+0

Спасибо, я искал список кодовых страниц. – lambacck

+0

Жаль, что я не могу дважды удвоить. Этот же ответ решил другую проблему для меня благодаря первой ссылке. – lambacck

+0

Это фиксировало мою немецкую кодировку ... в сочетании с кодировкой: Response.Charset = "utf-8" – Exter

3

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

<% Response.Charset="ISO-8859-1"%> 
0

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

0

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

Пример: Response.Write («»)

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

2

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

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

+0

Это была моя проблема, обратите внимание на этот ответ. –