1

Тема: AHK: Символы кодирования URL (UriEncode)

Как кодировать подряд все символы? —

str =
(
http://forum.script-coding.com/viewforum.php?id=13
)

MsgBox % UriEncode(str)

UriEncode(Str)
{
   b_Format:=A_FormatInteger
   Data:=""
   SetFormat, Integer, Hex
   Loop, Parse, Str
      If ((Asc(A_LoopField)>0x7f) Or (Asc(A_LoopField)<0x30)
                                  Or (Asc(A_LoopField)=0x3d))
         Data.="%" . ((StrLen(c:=SubStr(Asc(A_LoopField), 3))<2) ? "0" . c:c)
      Else
         Data.=A_LoopField
   SetFormat, Integer, % b_Format
   Return, Data
}

2 (изменено: teadrinker, 2021-01-08 00:12:04)

Re: AHK: Символы кодирования URL (UriEncode)

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

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Символы кодирования URL (UriEncode)

Напряг и получилось)—

str =
(
http://forum.script-coding.com/viewforum.php?id=13
)

MsgBox % UriEncode(str)

UriEncode(Str)
{
   b_Format:=A_FormatInteger
   Data:=""
   SetFormat, Integer, Hex
   Loop, Parse, Str
      If ((Asc(A_LoopField)))
         Data.="%" . ((StrLen(c:=SubStr(Asc(A_LoopField), 3))<2) ? "0" . c:c)
      Else
         Data.=A_LoopField
   SetFormat, Integer, % b_Format
   Return, Data
}

Нужно для обработки, чтобы определенный текст не подвергся изменению.

4

Re: AHK: Символы кодирования URL (UriEncode)

О, слишком сильно напрягли. Надо было чуть послабее:

UriEncode(Str)
{
   b_Format:=A_FormatInteger
   Data:=""
   SetFormat, Integer, Hex
   Loop, Parse, Str
      Data.="%" . ((StrLen(c:=SubStr(Asc(A_LoopField), 3))<2) ? "0" . c:c)
   SetFormat, Integer, % b_Format
   Return, Data
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Символы кодирования URL (UriEncode)

А вообще проще так:

str = http://forum.script-coding.com/viewforum.php?id=13

MsgBox % Encode(str)

Encode(str) {
   Loop, parse, str
      encoded .= Format("%{:02X}", Asc(A_LoopField))
   Return encoded
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder
+ DD