Что нового

Русские символы в строке адреса заменяются на ?6?

Vladd13579

Новичок
Сообщения
7
Репутация
0
Здраствуйте, решил научить автоит отправлять сообщения в вк через api vk, столкнулся с проблемой: inetread жует русский, отправляешь метод с русским сообщением, а вместо него ?6??6? доходит!, если ссылку открываешь в браузере,то все прекрасно..., так же проверил на ie аналогичный результат. прошу помощи..
 

mef-t

Осваивающий
Сообщения
306
Репутация
30
Необходимо проверить кодировку, в которой отправляет скрипт. И определиться с кодировкой, которая должна быть принята.
 
Автор
V

Vladd13579

Новичок
Сообщения
7
Репутация
0
Я был бы очень вам благодарен,если бы вы, подсказали, как узнать в какой кодировке отправляется запрос, и как эту кодировку изменить)
 
Автор
V

Vladd13579

Новичок
Сообщения
7
Репутация
0
Всем спасибо,решил вопрос довольно просто) вставляю адрес в файр фокс, потом копирую, и из копированного, беру ту часть,которая русская, она кодируется), функция кодировки адреса : _INetExplorerCapable( не подходит.), еще вычитал что можно сначала русские символы кодировать в UTF -8,по 2 байта а потом эти 2 байта переводить в 16тричное число и записывать через знак %
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Vladd13579 [?]
Всем спасибо,решил вопрос довольно просто) вставляю адрес в файр фокс, потом копирую, и из копированного, беру ту часть,которая русская, она кодируется)
У человека пила под рукой а он ножом сосну пилит.
Код:
$sID = ''
$sAccessToken = ''
$sText = "Привет!"
$sURL ='https://api.vkontakte.ru/method/messages.send.xml?uid='& $sID &'&message='& _URIComponent(_AnsiToUTF8($sText)) &'&access_token='& $sAccessToken

ConsoleWrite($sURL)

Func _URIComponent($s_URI, $s_Flag = 0)

   Local $o_Obj = ObjCreate("ScriptControl")
   $o_Obj.Language = "JScript"

   If $s_Flag Then
	  $s_Ret = $o_Obj.Eval(StringFormat('decodeURIComponent("%s");', $s_URI))
   Else
	  $s_Ret = $o_Obj.Eval(StringFormat('encodeURIComponent("%s");', $s_URI))
   EndIf

   Return $s_Ret
EndFunc   ;==>_URIComponent

Func _AnsiToUTF8($s_Str)
   Return BinaryToString(StringToBinary($s_Str, 4))
EndFunc ;==>_AnsiToUTF8
 
Верх