Vés al contingut

Mòdul:Encode

De Viquidites

Mediawiki utilitza la codificació de caràcters UTF-8. Així la funció {{urlencode: }} codifica en aquesta norma. Aquest mòdul proporciona altres codificacions necessàries.

Alguns llocs webs poden utilitzar altres codificacions. Això es pot trobar amb una funció del navegador per visualitzant el codi font de la pàgina, donant alguna cosa com:

<meta charset="UTF-8" />
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />
latin1

Codificar en latin-1 o ISO-8859-1. Sintaxi:

{{#invoke:encode|latin1|<text>}}

Per exemple:

  • {{#invoke:encode|latin1|Viquipèdia}} → Viquip%E8dia

en canvi compareu

  • {{urlencode:Viquipèdia}} → Viquip%C3%A8dia

Això pot ser útil, per exemple, per enllaçar al DIEC en línia:

  • [http://dlc.iec.cat/results.asp?txtEntrada={{#invoke:encode|latin1|camió}} camió al DIEC]camió al DIEC
pagename

Codifica com un títol de pàgina convertint a HTML certs caràcters, de la mateixa forma que ho fa la funció {{PAGENAME}}. A més, converteix a majúscula inicial i els guions baixos en espais en blanc. Sintaxi:

{{#invoke:encode|pagename|<text>}}

Per exemple, "Peter & John's" ho convertirà a "Peter &#38; John&#39;s". Tot i que l'HTML ho mostra igual, donarà positiu en fer una comparació amb {{PAGENAME}}. Vegeu mw:Manual:PAGENAMEE encoding.


-- Codificació de caràcters amb normes diferents a UTF-8

local p = {}

--[[
Codificació de caràcters en latin1 o ISO-8859-1, usat per exemple per {{diec}} i {{gdlc}}.
    Sintaxi: {{#invoke:encode|latin1|<text>}}
]]

function p.latin1(frame)
    local taulaLatin1 = { -- no és exhaustiva, inclou els caràcters usats en català
        ["à"] = "%E0",
        ["è"] = "%E8", ["é"] = "%E9",
        ["í"] = "%ED", ["ï"] = "%EF",
        ["ò"] = "%F2", ["ó"] = "%F3",
        ["ú"] = "%FA", ["ü"] = "%FC",
        ["ç"] = "%E7",
        ["·"] = "%B7",
        [" "] = "%20",
        ["'"] = "%27"}
    local text = mw.ustring.gsub(frame.args[1] or "", ".", taulaLatin1)
    return text
end

function p.pagename(frame)
    local taulaHtml = { -- caràcters codificats amb PAGENAME
        ["'"] = "&#39;",
        ["&"] = "&#38;",
        ['"'] = "&#34;",
        ["‎"] = "", -- caràcter de control al final de la cadena que apareix en copiar i engaxar
        ["_"] = " "}
    local text = mw.ustring.gsub(frame.args[1] or "", ".", taulaHtml)
    text = mw.text.trim(text)
    return mw.ustring.upper(mw.ustring.sub(text,1,1)) .. mw.ustring.sub(text,2)
end

return p