Punycode

From Wikipedia, the free encyclopedia

Remove ads

Punycode je v informatice název pro kódovací syntaxi, která umožňuje překlad řetězce znaků kódovaných prostřednictvím Unicode do jednoduché ASCII podoby, používané např. pro pojmenování síťových zařízení nebo internacionalizovaných internetových domén.

Kódovací princip

V této sekci je popsán postup Punycode kódování – částečně ukazuje převod řetězce „počítač“ do kódované podoby „pota-wpa5qd“.

Oddělení ASCII znaků

Nejprve jsou všechny základní (ASCII) znaky v řetězci odděleny od ostatních znaků (např. „počítač“ → „pota“). Pokud byl oddělen alespoň jeden ASCII znak přidá se na konec řetězce znak „-“ (např. „počítač“ → „pota-“).

Kódování ostatních znaků

Dále následuje kódování ostatních ne-ASCII znaků. Použitým algoritmem zahrnujícím tzv. bootstring (do číselných reprezentací v „base36“ (se symboly a … z, 0 … 9), ovšem s nejednotným „řádem“ – používají se tzv. generalized variable-length integers) se kóduje nejen samotný znak, ale i jeho původní pozice v Unicode tvaru. Například řetězec „počítač“ je převeden do podoby „pota-wpa5qd“. Právě text za (posledním) znakem „-“, tedy „wpa5qd“, v sobě nese zakódovanou informaci o ne-ASCII znacích (2× č, í) a jejich původním umístění v řetězci.

Pro použití v názvech domén IDN se ještě na začátek přidá konstantní „ACE prefix“ („xn--“). Zakódována doména např. „www.počítač.cz“ je tedy „www.xn--pota-wpa5qd.cz“.

Remove ads

Související články

Externí odkazy

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads