Added RouterOS v7.10+ compatibility to all scripts in links, when they concern dates in 2023-05-11 or 05-11 format
well done
Thanks ![]()
Send the only wanted Logs by Telegram messages:
one unique telegram message with all new log entry code
one telegram message for each new log entry code
Added the possibility to remove unwanted topics, like ipsec phase1 negotiation failed
Added the possibility to trim the length of the messages
Prevent the script running, inside the script, if the script already is running.
http://forum.mikrotik.com/t/prevent-the-script-from-running-if-it-is-already-running/167618/1
“Can a script be created if a wrong login name is used”:
http://forum.mikrotik.com/t/can-a-script-be-created-if-a-wrong-login-name-is-used/132192/29
derived from:
http://forum.mikrotik.com/t/script-to-add-ip-to-list-based-on-log-help-needed/156344/2
CP1251 Cyrillic variant
Convert string from ASCII 8-bit CP1251 to UNICODE entry points
:global ASCIItoCP1251toUNICODE do={
:local ascii "\00\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F\
\10\11\12\13\14\15\16\17\18\19\1A\1B\1C\1D\1E\1F\
\20\21\22\23\24\25\26\27\28\29\2A\2B\2C\2D\2E\2F\
\30\31\32\33\34\35\36\37\38\39\3A\3B\3C\3D\3E\3F\
\40\41\42\43\44\45\46\47\48\49\4A\4B\4C\4D\4E\4F\
\50\51\52\53\54\55\56\57\58\59\5A\5B\5C\5D\5E\5F\
\60\61\62\63\64\65\66\67\68\69\6A\6B\6C\6D\6E\6F\
\70\71\72\73\74\75\76\77\78\79\7A\7B\7C\7D\7E\7F\
\80\81\82\83\84\85\86\87\88\89\8A\8B\8C\8D\8E\8F\
\90\91\92\93\94\95\96\97\98\99\9A\9B\9C\9D\9E\9F\
\A0\A1\A2\A3\A4\A5\A6\A7\A8\A9\AA\AB\AC\AD\AE\AF\
\B0\B1\B2\B3\B4\B5\B6\B7\B8\B9\BA\BB\BC\BD\BE\BF\
\C0\C1\C2\C3\C4\C5\C6\C7\C8\C9\CA\CB\CC\CD\CE\CF\
\D0\D1\D2\D3\D4\D5\D6\D7\D8\D9\DA\DB\DC\DD\DE\DF\
\E0\E1\E2\E3\E4\E5\E6\E7\E8\E9\EA\EB\EC\ED\EE\EF\
\F0\F1\F2\F3\F4\F5\F6\F7\F8\F9\FA\FB\FC\FD\FE\FF"
:local CP1251toUNICODE {"0000";"0001";"0002";"0003";"0004";"0005";"0006";"0007";"0008";"0009";"000A";"000B";"000C";"000D";"000E";"000F";
"0010";"0011";"0012";"0013";"0014";"0015";"0016";"0017";"0018";"0019";"001A";"001B";"001C";"001D";"001E";"001F";
"0020";"0021";"0022";"0023";"0024";"0025";"0026";"0027";"0028";"0029";"002A";"002B";"002C";"002D";"002E";"002F";
"0030";"0031";"0032";"0033";"0034";"0035";"0036";"0037";"0038";"0039";"003A";"003B";"003C";"003D";"003E";"003F";
"0040";"0041";"0042";"0043";"0044";"0045";"0046";"0047";"0048";"0049";"004A";"004B";"004C";"004D";"004E";"004F";
"0050";"0051";"0052";"0053";"0054";"0055";"0056";"0057";"0058";"0059";"005A";"005B";"005C";"005D";"005E";"005F";
"0060";"0061";"0062";"0063";"0064";"0065";"0066";"0067";"0068";"0069";"006A";"006B";"006C";"006D";"006E";"006F";
"0070";"0071";"0072";"0073";"0074";"0075";"0076";"0077";"0078";"0079";"007A";"007B";"007C";"007D";"007E";"007F";
"0402";"0403";"201A";"0453";"201E";"2026";"2020";"2021";"20AC";"2030";"0409";"2039";"040A";"040C";"040B";"040F";
"0452";"2018";"2019";"201C";"201D";"2022";"2013";"2014";"FFFD";"2122";"0459";"203A";"045A";"045C";"045B";"045F";
"00A0";"040E";"045E";"0408";"00A4";"0490";"00A6";"00A7";"0401";"00A9";"0404";"00AB";"00AC";"00AD";"00AE";"0407";
"00B0";"00B1";"0406";"0456";"0491";"00B5";"00B6";"00B7";"0451";"2116";"0454";"00BB";"0458";"0405";"0455";"0457";
"0410";"0411";"0412";"0413";"0414";"0415";"0416";"0417";"0418";"0419";"041A";"041B";"041C";"041D";"041E";"041F";
"0420";"0421";"0422";"0423";"0424";"0425";"0426";"0427";"0428";"0429";"042A";"042B";"042C";"042D";"042E";"042F";
"0430";"0431";"0432";"0433";"0434";"0435";"0436";"0437";"0438";"0439";"043A";"043B";"043C";"043D";"043E";"043F";
"0440";"0441";"0442";"0443";"0444";"0445";"0446";"0447";"0448";"0449";"044A";"044B";"044C";"044D";"044E";"044F"
}
:local string $1
:if (([:typeof $string] != "str") or ($string = "")) do={ :return "" }
:local lenstr [:len $string]
:local constr ""
:for pos from=0 to=($lenstr - 1) do={
:local unicode "0x$($CP1251toUNICODE->[:find $ascii [:pick $string $pos ($pos + 1)] -1]) "
:set constr "$constr$unicode"
}
:return $constr
}
:put [$ASCIItoCP1251toUNICODE ("\F2\E5\F1\F2")]
тест = \F2\E5\F1\F2 = 0x0442 0x0435 0x0441 0x0442
0x98 (not assigned on CP1251) => 0xFFFD REPLACEMENT CHARACTER �
Convert string from ASCII 8-bit CP1251 to UTF-8 string with each byte escaped with %
:global ASCIItoCP1251toUTF8 do={
:local ascii "\00\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F\
\10\11\12\13\14\15\16\17\18\19\1A\1B\1C\1D\1E\1F\
\20\21\22\23\24\25\26\27\28\29\2A\2B\2C\2D\2E\2F\
\30\31\32\33\34\35\36\37\38\39\3A\3B\3C\3D\3E\3F\
\40\41\42\43\44\45\46\47\48\49\4A\4B\4C\4D\4E\4F\
\50\51\52\53\54\55\56\57\58\59\5A\5B\5C\5D\5E\5F\
\60\61\62\63\64\65\66\67\68\69\6A\6B\6C\6D\6E\6F\
\70\71\72\73\74\75\76\77\78\79\7A\7B\7C\7D\7E\7F\
\80\81\82\83\84\85\86\87\88\89\8A\8B\8C\8D\8E\8F\
\90\91\92\93\94\95\96\97\98\99\9A\9B\9C\9D\9E\9F\
\A0\A1\A2\A3\A4\A5\A6\A7\A8\A9\AA\AB\AC\AD\AE\AF\
\B0\B1\B2\B3\B4\B5\B6\B7\B8\B9\BA\BB\BC\BD\BE\BF\
\C0\C1\C2\C3\C4\C5\C6\C7\C8\C9\CA\CB\CC\CD\CE\CF\
\D0\D1\D2\D3\D4\D5\D6\D7\D8\D9\DA\DB\DC\DD\DE\DF\
\E0\E1\E2\E3\E4\E5\E6\E7\E8\E9\EA\EB\EC\ED\EE\EF\
\F0\F1\F2\F3\F4\F5\F6\F7\F8\F9\FA\FB\FC\FD\FE\FF"
:local CP1251toUTF8 {"00";"01";"02";"03";"04";"05";"06";"07";"08";"09";"0A";"0B";"0C";"0D";"0E";"0F";
"10";"11";"12";"13";"14";"15";"16";"17";"18";"19";"1A";"1B";"1C";"1D";"1E";"1F";
"20";"21";"22";"23";"24";"25";"26";"27";"28";"29";"2A";"2B";"2C";"2D";"2E";"2F";
"30";"31";"32";"33";"34";"35";"36";"37";"38";"39";"3A";"3B";"3C";"3D";"3E";"3F";
"40";"41";"42";"43";"44";"45";"46";"47";"48";"49";"4A";"4B";"4C";"4D";"4E";"4F";
"50";"51";"52";"53";"54";"55";"56";"57";"58";"59";"5A";"5B";"5C";"5D";"5E";"5F";
"60";"61";"62";"63";"64";"65";"66";"67";"68";"69";"6A";"6B";"6C";"6D";"6E";"6F";
"70";"71";"72";"73";"74";"75";"76";"77";"78";"79";"7A";"7B";"7C";"7D";"7E";"7F";
"D082";"D083";"E2809A";"D193";"E2809E";"E280A6";"E280A0";"E280A1";"E282AC";"E280B0";"D089";"E280B9";"D08A";"D08C";"D08B";"D08F";
"D192";"E28098";"E28099";"E2809C";"E2809D";"E280A2";"E28093";"E28094";"EFBFBD";"E284A2";"D199";"E280BA";"D19A";"D19C";"D19B";"D19F";
"C2A0";"D08E";"D19E";"D088";"C2A4";"D290";"C2A6";"C2A7";"D081";"C2A9";"D084";"C2AB";"C2AC";"C2AD";"C2AE";"D087";
"C2B0";"C2B1";"D086";"D196";"D291";"C2B5";"C2B6";"C2B7";"D191";"E28496";"D194";"C2BB";"D198";"D085";"D195";"D197";
"D090";"D091";"D092";"D093";"D094";"D095";"D096";"D097";"D098";"D099";"D09A";"D09B";"D09C";"D09D";"D09E";"D09F";
"D0A0";"D0A1";"D0A2";"D0A3";"D0A4";"D0A5";"D0A6";"D0A7";"D0A8";"D0A9";"D0AA";"D0AB";"D0AC";"D0AD";"D0AE";"D0AF";
"D0B0";"D0B1";"D0B2";"D0B3";"D0B4";"D0B5";"D0B6";"D0B7";"D0B8";"D0B9";"D0BA";"D0BB";"D0BC";"D0BD";"D0BE";"D0BF";
"D180";"D181";"D182";"D183";"D184";"D185";"D186";"D187";"D188";"D189";"D18A";"D18B";"D18C";"D18D";"D18E";"D18F"
}
:local string $1
:if (([:typeof $string] != "str") or ($string = "")) do={ :return "" }
:local lenstr [:len $string]
:local constr ""
:for pos from=0 to=($lenstr - 1) do={
:local utf ($CP1251toUTF8->[:find $ascii [:pick $string $pos ($pos + 1)] -1])
:local sym ""
:if ([:len $utf] = 2) do={:set sym "%$[:pick $utf 0 2]" }
:if ([:len $utf] = 4) do={:set sym "%$[:pick $utf 0 2]%$[:pick $utf 2 4]" }
:if ([:len $utf] = 6) do={:set sym "%$[:pick $utf 0 2]%$[:pick $utf 2 4]%$[:pick $utf 4 6]" }
:set constr "$constr$sym"
}
:return $constr
}
:put [$ASCIItoCP1251toUTF8 ("\F2\E5\F1\F2")]
0x98 (not assigned on CP1251) => %EF%BF%BD REPLACEMENT CHARACTER �
тест = \F2\E5\F1\F2 = %D1%82%D0%B5%D1%81%D1%82
The BOM, Byte Order Mark for UTF-8 is “%EF%BB%BF”
CP1251 Cyrillic variant: Function to URL encode the strings for the GET fields for “/tool fetch”
(a submitted GET form can be simulated with http-header-field=“Content-Type:application/x-www-form-urlencoded”)
or POST with datatype application/x-www-form-urlencoded
(http-header-field=“Content-Type:application/x-www-form-urlencoded” http-data=“”)
Only 4 characters - . _ ~ must not be escaped, and space must be replaced with +
:global ASCIItoCP1251toURLencode do={
:local ascii "\00\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F\
\10\11\12\13\14\15\16\17\18\19\1A\1B\1C\1D\1E\1F\
\20\21\22\23\24\25\26\27\28\29\2A\2B\2C\2D\2E\2F\
\30\31\32\33\34\35\36\37\38\39\3A\3B\3C\3D\3E\3F\
\40\41\42\43\44\45\46\47\48\49\4A\4B\4C\4D\4E\4F\
\50\51\52\53\54\55\56\57\58\59\5A\5B\5C\5D\5E\5F\
\60\61\62\63\64\65\66\67\68\69\6A\6B\6C\6D\6E\6F\
\70\71\72\73\74\75\76\77\78\79\7A\7B\7C\7D\7E\7F\
\80\81\82\83\84\85\86\87\88\89\8A\8B\8C\8D\8E\8F\
\90\91\92\93\94\95\96\97\98\99\9A\9B\9C\9D\9E\9F\
\A0\A1\A2\A3\A4\A5\A6\A7\A8\A9\AA\AB\AC\AD\AE\AF\
\B0\B1\B2\B3\B4\B5\B6\B7\B8\B9\BA\BB\BC\BD\BE\BF\
\C0\C1\C2\C3\C4\C5\C6\C7\C8\C9\CA\CB\CC\CD\CE\CF\
\D0\D1\D2\D3\D4\D5\D6\D7\D8\D9\DA\DB\DC\DD\DE\DF\
\E0\E1\E2\E3\E4\E5\E6\E7\E8\E9\EA\EB\EC\ED\EE\EF\
\F0\F1\F2\F3\F4\F5\F6\F7\F8\F9\FA\FB\FC\FD\FE\FF"
:local CP1251toURLe {"00";"01";"02";"03";"04";"05";"06";"07";"08";"09";"0A";"0B";"0C";"0D";"0E";"0F";
"10";"11";"12";"13";"14";"15";"16";"17";"18";"19";"1A";"1B";"1C";"1D";"1E";"1F";
"+";"21";"22";"23";"24";"25";"26";"27";"28";"29";"2A";"2B";"2C";"-";".";"2F";
"0";"1";"2";"3";"4";"5";"6";"7";"8";"9";"3A";"3B";"3C";"3D";"3E";"3F";
"40";"A";"B";"C";"D";"E";"F";"G";"H";"I";"J";"K";"L";"M";"N";"O";
"P";"Q";"R";"S";"T";"U";"V";"W";"X";"Y";"Z";"5B";"5C";"5D";"5E";"_";
"60";"a";"b";"c";"d";"e";"f";"g";"h";"i";"j";"k";"l";"m";"n";"o";
"p";"q";"r";"s";"t";"u";"v";"w";"x";"y";"z";"7B";"7C";"7D";"~";"7F";
"D082";"D083";"E2809A";"D193";"E2809E";"E280A6";"E280A0";"E280A1";"E282AC";"E280B0";"D089";"E280B9";"D08A";"D08C";"D08B";"D08F";
"D192";"E28098";"E28099";"E2809C";"E2809D";"E280A2";"E28093";"E28094";"EFBFBD";"E284A2";"D199";"E280BA";"D19A";"D19C";"D19B";"D19F";
"C2A0";"D08E";"D19E";"D088";"C2A4";"D290";"C2A6";"C2A7";"D081";"C2A9";"D084";"C2AB";"C2AC";"C2AD";"C2AE";"D087";
"C2B0";"C2B1";"D086";"D196";"D291";"C2B5";"C2B6";"C2B7";"D191";"E28496";"D194";"C2BB";"D198";"D085";"D195";"D197";
"D090";"D091";"D092";"D093";"D094";"D095";"D096";"D097";"D098";"D099";"D09A";"D09B";"D09C";"D09D";"D09E";"D09F";
"D0A0";"D0A1";"D0A2";"D0A3";"D0A4";"D0A5";"D0A6";"D0A7";"D0A8";"D0A9";"D0AA";"D0AB";"D0AC";"D0AD";"D0AE";"D0AF";
"D0B0";"D0B1";"D0B2";"D0B3";"D0B4";"D0B5";"D0B6";"D0B7";"D0B8";"D0B9";"D0BA";"D0BB";"D0BC";"D0BD";"D0BE";"D0BF";
"D180";"D181";"D182";"D183";"D184";"D185";"D186";"D187";"D188";"D189";"D18A";"D18B";"D18C";"D18D";"D18E";"D18F"
}
:local string $1
:if (([:typeof $string] != "str") or ($string = "")) do={ :return "" }
:local lenstr [:len $string]
:local constr ""
:for pos from=0 to=($lenstr - 1) do={
:local urle ($CP1251toURLe->[:find $ascii [:pick $string $pos ($pos + 1)] -1])
:local sym $urle
:if ([:len $urle] = 2) do={:set sym "%$[:pick $urle 0 2]" }
:if ([:len $urle] = 4) do={:set sym "%$[:pick $urle 0 2]%$[:pick $urle 2 4]" }
:if ([:len $urle] = 6) do={:set sym "%$[:pick $urle 0 2]%$[:pick $urle 2 4]%$[:pick $urle 4 6]" }
:set constr "$constr$sym"
}
:return $constr
}
:put [$ASCIItoCP1251toURLencode ("test on Cyrillic is \F2\E5\F1\F2 (on CP1251)")]
\F2\E5\F1\F2 = тест
result:
test+on+Cyrillic+is+%D1%82%D0%B5%D1%81%D1%82+%28on+CP1251%29
If the text is already on UTF-8, like readed from a file or fetched “data”, must be used this:
Now it’s time to create CP1251toHexGSM7, but… GSM-7 doesn’t support Cyrillic characters at all,
so it is impossible to write a function to convert something written with CP1251 and convert it into an SMS written on GSM-7 (unless you just use a-z, etc).
At this point it is more accurate to write a function based on GOST 7.79-2000 that transliterates symbols from Cyrillic to the Latin characters on ASCII-7 bit.
Of course this is only if you really can’t send the message in UCS-2 format, since UCS-2 supports (maybe) all languages…
So…
Process to convert one CP1251 string to one transliterated ASCII-7 bit only string for create the PDU.
First:
Convert the string from CP1251 to transliterated ASCII-7 bit only using GOST 7.79-2000 as guide.
:global CP1251to7BITbyGHOST do={
:local CP1251 "\00\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F\
\10\11\12\13\14\15\16\17\18\19\1A\1B\1C\1D\1E\1F\
\20\21\22\23\24\25\26\27\28\29\2A\2B\2C\2D\2E\2F\
\30\31\32\33\34\35\36\37\38\39\3A\3B\3C\3D\3E\3F\
\40\41\42\43\44\45\46\47\48\49\4A\4B\4C\4D\4E\4F\
\50\51\52\53\54\55\56\57\58\59\5A\5B\5C\5D\5E\5F\
\60\61\62\63\64\65\66\67\68\69\6A\6B\6C\6D\6E\6F\
\70\71\72\73\74\75\76\77\78\79\7A\7B\7C\7D\7E\7F\
\80\81\82\83\84\85\86\87\88\89\8A\8B\8C\8D\8E\8F\
\90\91\92\93\94\95\96\97\98\99\9A\9B\9C\9D\9E\9F\
\A0\A1\A2\A3\A4\A5\A6\A7\A8\A9\AA\AB\AC\AD\AE\AF\
\B0\B1\B2\B3\B4\B5\B6\B7\B8\B9\BA\BB\BC\BD\BE\BF\
\C0\C1\C2\C3\C4\C5\C6\C7\C8\C9\CA\CB\CC\CD\CE\CF\
\D0\D1\D2\D3\D4\D5\D6\D7\D8\D9\DA\DB\DC\DD\DE\DF\
\E0\E1\E2\E3\E4\E5\E6\E7\E8\E9\EA\EB\EC\ED\EE\EF\
\F0\F1\F2\F3\F4\F5\F6\F7\F8\F9\FA\FB\FC\FD\FE\FF"
:local GHOST {"\00";"\01";"\02";"\03";"\04";"\05";"\06";"\07";"\08";"\09";"\0A";"\0B";"\0C";"\0D";"\0E";"\0F";
"\10";"\11";"\12";"\13";"\14";"\15";"\16";"\17";"\18";"\19";"\1A";"\1B";"\1C";"\1D";"\1E";"\1F";
"\20";"\21";"\22";"\23";"\24";"\25";"\26";"\27";"\28";"\29";"\2A";"\2B";"\2C";"\2D";"\2E";"\2F";
"\30";"\31";"\32";"\33";"\34";"\35";"\36";"\37";"\38";"\39";"\3A";"\3B";"\3C";"\3D";"\3E";"\3F";
"\40";"\41";"\42";"\43";"\44";"\45";"\46";"\47";"\48";"\49";"\4A";"\4B";"\4C";"\4D";"\4E";"\4F";
"\50";"\51";"\52";"\53";"\54";"\55";"\56";"\57";"\58";"\59";"\5A";"\5B";"\5C";"\5D";"\5E";"\5F";
"\60";"\61";"\62";"\63";"\64";"\65";"\66";"\67";"\68";"\69";"\6A";"\6B";"\6C";"\6D";"\6E";"\6F";
"\70";"\71";"\72";"\73";"\74";"\75";"\76";"\77";"\78";"\79";"\7A";"\7B";"\7C";"\7D";"\7E";"\7F";
"DJ";"GJ";"\82";"gj";"\84";"\85";"\86";"\87";"\80";"\89";"LJ";"\8B";"NJ";"KJ";"CJ";"DJ";
"dj";"\91";"\92";"\93";"\94";"\95";"\96";"\97";"\90";"\99";"lj";"\9B";"nj";"kj";"cj";"dj";
"\A0";"W";"w";"J";"\A4";"G";"\A6";"\A7";"YO";"\A9";"YE";"\AB";"\AC";"\AD";"\AE";"YI";
"\B0";"\B1";"I";"i";"g";"\B5";"\B6";"\B7";"yo";"#";"ye";"\BB";"j";"DZ";"dz";"yi";
"A";"B";"V";"G";"D";"E";"ZH";"Z";"I";"J";"K";"L";"M";"N";"O";"P";
"R";"S";"T";"U";"F";"X";"CZ";"CH";"SH";"SHH";"\"";"Y'";"'";"E'";"YU";"YA";
"a";"b";"v";"g";"d";"e";"zh";"z";"i";"j";"k";"l";"m";"n";"o";"p";
"r";"s";"t";"u";"f";"x";"cz";"ch";"sh";"shh";"\"";"y'";"'";"e'";"yu";"ya"
}
:local string $1
:if (([:typeof $string] != "str") or ($string = "")) do={ :return "" }
:local lenstr [:len $string]
:local constr ""
:for pos from=0 to=($lenstr - 1) do={
:set constr "$constr$($GHOST->[:find $CP1251 [:pick $string $pos ($pos + 1)] -1])"
}
:return $constr
}
Example (\F2\E5\F1\F2 = тест)
:put [$CP1251to7BITbyGHOST ("\F2\E5\F1\F2")]
result:
test
Then:
Use CP1252toHexGSM7 here:
I apologize in advance for any mistakes, I don’t know Cyrillic.
Thanks for understanding.
Conversion table used:
АБВГДЕ Ж ЗИЙКЛМНОПРСТУФХ Ц Ч Ш Щ Ъ Ы Ь Э Ю Я абвгде ж зийклмнопрстуфх ц ч ш щ ъ ы ь э ю я
ABVGDE ZH ZIJKLMNOPRSTUFX CZ CH SH SHH " Y' ' E' YU YA abvgde zh zijklmnoprstufx cz ch sh shh " y' ' e' yu ya
Ґ Ѓ Ђ Ё Є Ѕ І Ї Ј Љ Њ Ќ Ћ Ў Џ ґ ѓ ђ ё є ѕ і ї ј љ њ ќ ћ ў џ
G GJ DJ YO YE DZ I YI J LJ NJ KJ CJ W DJ g gj dj yo ye dz i yi j lj nj kj cj w dj
Thanks @Ca6ko for the suggestion of GOST 7.79-2000
If someone want help, please go here:
Check if Script is already running:
http://forum.mikrotik.com/t/prevent-the-script-from-running-if-it-is-already-running/167618/3
Rex has written almost every script you can think of.
What should we do now?
It’s time to hack the Router OS (scientifically speaking, reverse engineer it).
There’s no talking about it…
For having spoiled 6 new devices,
and having logically opened a post for each of them, as any intelligent person would have done, given that it was a topic for each device,
as is done everywhere on this and other forums,
I was banned for a few days, without the possibility of reply…
Have you damaged 6 Mikrotik devices? It’s hard to believe. What devices are these and how did this happen?
No… language misunderstand…
spoiler = in this case used as “reveal in advance”, not to break something…
Hello, I’m from China. I’m currently confused as to whether I can convert Chinese characters into URLencode encoding, such as “朋友你好”. I’ve tried all the global variables you provided above, but it doesn’t work. Very much looking forward to and thank you for your reply
Translation from Google
Open a separate topic.