Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кодировать строку в нужный формат, Win1251 и base64 
:(
    Опции темы
Rodman
Дата 16.8.2011, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Дароф

Вот накидал скрипт для оптравки запроса по http...
Код

Option Compare Database

Sub SleepVB(Seconds)
       ' îæèäàíèå Seconds ñåêóíä
       Dim Start
       Start = Timer ' òåêóùåå âðåìÿ â ñåêóíäàõ
       Do While Timer < Start + Seconds
       ' îáåñïå÷èâàåò ïàðàëëåëüíîå âûïîëíåíèå äðóãèõ ïðîöåññîâ
       DoEvents
       Loop
       End Sub


Private Sub Êíîïêà0_Click()
Dim answer, message, abonent

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = False

'======================Ïàðàìåòðû==================================
UserName = "test"
pass = "test"
alpha_name = "SMS CLUB"
message = EncodeBase64("Вам пришел товар")
'message = EncodeBase64("Vam prishel gruz")
abonent = "380500000000"
'=================================================================

objIE.Navigate "http://smpp.smsclub.mobi/hfw_smpp_addon/httpsendsms.php?username=" + UserName + "&password=" + pass + "&from=" + alpha_name + "&to=" + abonent + "&text=" + message
While objIE.Busy

SleepVB (2)

Wend
answer = objIE.Document.body.innerHTML

a = objIE.Quit()

End Sub





Но в результате этого запроса получаю каракули...

Для корректной работы необходимо в переменную message записать текст в кодировке Win1251 и потом его законвертить в base64...

Но как это правильно сделать? 

Спасибо
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Agentsmith
Дата 13.10.2011, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.4.2008

Репутация: нет
Всего: нет



Это не каракули, а ответ сервера в другой кодировке (вероятно UTF-8).  Полезно было бы узнать чё пишет.

Законвертить надо не в Base64, а в это:
(взято на http://www.xserver.ru/computer/sredaprogr/msvb/32/ )
Код

Function EncodeBase64(s)
Dim Char As Integer, i As Integer
For i = 1 To Len(s$)
     Char = Asc(Mid(s$, i, 1))
     If Char > 96 And Char < 123 Then
         EncodeBase64 = EncodeBase64 + Mid(s$, i, 1)
     ElseIf Char > 64 And Char < 91 Then
         EncodeBase64 = EncodeBase64 + Mid(s$, i, 1)
     ElseIf Char = 32 Then
         EncodeBase64 = EncodeBase64 + "+"
     Else
         EncodeBase64 = EncodeBase64 + "%" + Hex(Asc(Mid(s$, i, 1)))
     End If
 Next i
End Function



Это сообщение отредактировал(а) Agentsmith - 14.10.2011, 13:50
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0619 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.