Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кодировка
 
 автор: Hush   (20.05.2009 в 18:13)   личное сообщение
 
 

пытаюсь отправить на удаленный сервер текст (strMessage) через POST-запрос. Сервер принимает данные, но никак не могу настроить кодировку, потому как приходит файл все время кодированным в UTF-8. нужно, чтобы уходил в windows-1251.

Set oHttpPost = CreateObject("Microsoft.XMLHTTP")
oHttpPost.Open "POST", "http://dsp.p2e.ru/grants.asp", False
oHttpPost.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oHttpPost.send (strMessage)

  Ответить  
 
 автор: Goblin   (20.05.2009 в 23:17)   личное сообщение
 
 

Крутой вопрос для этого сайта. Но чисто из принципа влезу и сюда. Попробуй поменять значения ключей в реестре. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\CodePage В былые временя я так фотошоп6 научил кириллице, меняя 1250, 1252 на 1251. Может и тут что-нибудь в этом роде??

  Ответить  
 
 автор: Hush   (21.05.2009 в 10:57)   личное сообщение
 
 

Нет. Тут дело в другом. В Access отображается все верно, но при передаче данных XMLHTTP автоматически кодирует при отправке строку в UTF-8. Получается я отправляю в win-1251 а сервер получает в UTF-8.

  Ответить  
 
 автор: osmor   (21.05.2009 в 11:19)   личное сообщение
 
 

попробуйте добавить что-то вроде
oHttpPost.setRequestHeader("Content-Type", "text/html; charset=windows-1251")
ну или utf-8....

  Ответить  
 
 автор: Hush   (22.05.2009 в 12:46)   личное сообщение
 
 

Неа, не получается. Ругается и ничего не отсылает. Простую строку он полюбому будет кодировать в UTF-8. Как-то сделается через ADO.STREAM.. но как я еще не понял.

  Ответить  
 
 автор: Анатолий (Киев)   (22.05.2009 в 13:13)   личное сообщение
 
 

Может нужно преобразовать строку в байтовый массив и отправлять его?
ADO.STREAM, кстати, умеет работать и со строками и с двоичными данными.

  Ответить  
 
 автор: osmor   (22.05.2009 в 14:27)   личное сообщение
 
 

через ADO.STREAM сделается что? перекодировка?

  Ответить  
 
 автор: Hush   (22.05.2009 в 16:39)   личное сообщение
 
 

Может я не прав, но ADO делает как бы обертку, не строку, а XMLHTTP по своей спецификации строку перекодирует в UTF-8, но только строку.
Байтовый вариант не подходит, потому что мне нужно передать именно строку на сервер.. последовательность адресных данных чререз разделитель.

Может еще через чего-то можно передать строку на сервер?

  Ответить  
 
 автор: Анатолий (Киев)   (22.05.2009 в 17:54)   личное сообщение
 
 

Я имел ввиду это:

Dim arr() As Byte
'Преобразуем Unicode в ANSI, а затем - в байтовый массив
arr = StrConv(strMessage, vbFromUnicode) 
'Отправляем массив
oHttpPost.send arr

  Ответить  
 
 автор: Hush   (25.05.2009 в 18:57)   личное сообщение
 
 

Так тоже не идет:(

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList