MODULO
Memtesto ne disponeblas.

-- aldona informo pri cirilaj skriboj ĉe https://unicode-table.com/ru/blocks/cyrillic/
-- uzataj por lingvoj:
-- be, bg, mk, ru, rue, sr/sh/cnr, uk, cu(chu), 
-- os, tg, mo, mn, az, ba, ky, tt, tk, cv, ce, ab, av, ady, inh, lez, dng, 
-- rom, itl, kpy, ckt, bua, xal, gag, kdr, nog, kjh, sah, yrk, udm kaj aliaj
--
-- instigte per
-- https://gist.github.com/liukun/f9ce7d6d14fa45fe9b924a3eed5c3d99
-- http://mydc.ru/topic334.html
--
local p = {};

local mapo = {
        [1027]= 129, [8225]= 135, [1046]= 198, [8222]= 132, [1047]= 199, [1168]= 165, 
        [1048]= 200, [1113]= 154, [1049]= 201, [1045]= 197, [1050]= 202, [1028]= 170, 
        [1040]= 192, [1051]= 203, [1053]= 205, [1114]= 156, [8221]= 148, [1029]= 189, 
        [1056]= 208, [1057]= 209, [1058]= 210, [8364]= 136, [1112]= 188, [1115]= 158, 
        [1059]= 211, [1060]= 212, [1030]= 178, [1061]= 213, [1062]= 214, [1063]= 215, 
        [1116]= 157, [1064]= 216, [1065]= 217, [1031]= 175, [1066]= 218, [1067]= 219, 
        [1068]= 220, [1069]= 221, [1070]= 222, [1032]= 163, [8226]= 149, [1071]= 223, 
        [1072]= 224, [8482]= 153, [1073]= 225, [8240]= 137, [1118]= 162, [1074]= 226, 
        [1110]= 179, [8230]= 133, [1075]= 227, [1033]= 138, [1076]= 228, [1077]= 229, 
        [8211]= 150, [1078]= 230, [1119]= 159, [1079]= 231, [1042]= 194, [1080]= 232, 
        [1034]= 140, [1025]= 168, [1081]= 233, [1082]= 234, [8212]= 151, [1083]= 235, 
        [1169]= 180, [1084]= 236, [1052]= 204, [1085]= 237, [1035]= 142, [1086]= 238, 
        [1087]= 239, [1088]= 240, [1089]= 241, [1090]= 242, [1036]= 141, [1041]= 193, 
        [1091]= 243, [1092]= 244, [8224]= 134, [1093]= 245, [8470]= 185, [1094]= 246, 
        [1054]= 206, [1095]= 247, [1096]= 248, [8249]= 139, [1097]= 249, [1098]= 250, 
        [1044]= 196, [1099]= 251, [1111]= 191, [1055]= 207, [1100]= 252, [1038]= 161, 
        [8220]= 147, [1101]= 253, [8250]= 155, [1102]= 254, [8216]= 145, [1103]= 255, 
        [1043]= 195, [1105]= 184, [1039]= 143, [1026]= 128, [1106]= 144, [8218]= 130, 
        [1107]= 131, [8217]= 146, [1108]= 186, [1109]= 190
}
 
function p.al1251url(kesto)
        local teksto = kesto.args[1] or ''
        local rezulto = ''
        if teksto ~= '' then
                for i = 1, mw.ustring.len(teksto) do
                         local kodo = mw.ustring.codepoint(teksto, i, i)
                         local litero = mapo[kodo]
                         if litero ~= nil then
                               rezulto = rezulto .. mw.ustring.format('%%%02X', litero);
                         else
                               rezulto = rezulto .. mw.ustring.char(kodo);
                         end
                end
                return rezulto
        end
        return ''
end

return p
--