Փյունիկոդ

**Փյունիկոդ** (, [ˈpjuːniˌkəʊd]), յունիկոդի ներկայացումն է՝ սահմանափակ ASCII նիշերի ենթաբազմությամբ, որն օգտագործվում է ինտերնետային հոսթ անունների համար: Փյունիկոդի միջոցով յունիկոդ նիշեր պարունակող հոսթ անունները վերակոդավորվում են ASCII ենթաբազմության, որը բաղկացած է տառերից, թվանշաններից և գծիկներից, որը կոչվում է տառ-թվանշան-գծիկ (LDH) ենթաբազմություն: Օրինակ, գերմաներեն *[[Մյունխեն|München-ը]]* ( անգլերեն ՝ Munich ) կոդավորվում է որպես *Mnchen-3ya*:

Մինչդեռ Դոմենային անվան համակարգը (DNS) տեխնիկապես աջակցում է դոմենային անվանումների պիտակներում օկտետների կամայական հաջորդականությունները, DNS ստանդարտները խորհուրդ են տալիս օգտագործել ASCII-ի LDH ենթաբազմությունը, որը սովորաբար օգտագործվում է հոսթ անունների համար, և պահանջում են, որ DNS դոմենային անունների միջև տողերի համեմատությունները լինեն անզգայուն մեծատառերի նկատմամբ: Փյունիկոդ շարահյուսությունը յունիկոդ նիշեր պարունակող տողերի, ինչպիսիք են միջազգայնացված դոմենային անունները (IDNA), կոդավորման մեթոդ է DNS-ի կողմից նախընտրելի ASCII-ի LDH ենթաբազմության մեջ: Այն նշված է IETF Request for Comments 3492-ում:

## Անվան ծագում
RFC-ի հեղինակ Ադամ Կոստելոն գրել է.Ինչո՞ւ «Փյունիկոդ»: Այն հանգավորվում է Յունիկոդի հետ և նախատեսված է Յունիկոդի տողերը կոդավորելու համար: Այն «փոքր» է երեք իմաստով՝ կոդավորված տողերում օգտագործվող նիշերի ցանկը փոքր է, կոդավորված տողերը կարճ են, և ներդրումը փոքր է: 

## Նկարագրություն
Ինչպես նշված է RFC 3492-ում, «Փյունիկոդը Bootstring անվամբ ավելի ընդհանուր ալգորիթմի օրինակն է, որը թույլ է տալիս «հիմնական» կոդային կետերի փոքր հավաքածուից կազմված տողերին եզակի կերպով ներկայացնել ավելի մեծ հավաքածուից վերցված կոդային կետերի ցանկացած տող»։ Punycode-ը սահմանում է ընդհանուր Bootstring ալգորիթմի պարամետրերը՝ յունիկոդ տեքստի բնութագրերին համապատասխանելու համար։ Այս բաժինը ցույց է տալիս փյունիկոդ կոդավորման ընթացակարգը՝ որպես օրինակ օգտագործելով գերմաներեն «bücher» (անգլերեն՝ books) տողը, որը փոխարկվում է «bcher-kva» պիտակի։

Կոդավորման և վերծանման ալգորիթմները պարզեցնելու համար որևէ փորձ չի արվել կանխելու որոշ կոդավորված արժեքների կողմից անընդունելի յունիկոդ արժեքների կոդավորումը. սակայն դրանք պետք է ստուգվեն և հայտնաբերվեն վերծանման ընթացքում։

Փյունիկոդը նախատեսված է աշխատելու բոլոր գրերի համակարգերի հետ և ինքնաօպտիմալացվող է՝ փորձելով հարմարվել տողի ներսում առկա նիշերի բազմությունների շրջանակներին աշխատանքի ընթացքում։ Այն օպտիմիզացված է այն դեպքի համար, երբ տողը կազմված է զրո կամ ավելի ASCII նիշերից և, բացի այդ, միայն մեկ այլ գրի համակարգի նիշերից, բայց կկարողանա մշակել ցանկացած կամայական յունիկոդ տող։ DNS-ի օգտագործման համար ենթադրվում է, որ դոմենի անվան տողը նորմալացվել է nameprep-ի միջոցով և (վերին մակարդակի դոմենների համար) զտվել է պաշտոնապես գրանցված լեզվի աղյուսակի հիման վրա՝ նախքան փյունիկոդով կոդավորվելը, և որ DNS արձանագրությունը սահմանափակումներ է դնում ելքային փյունիկոդ տողի ընդունելի երկարությունների վրա։

## ACE նախածանց միջազգայնացված դոմենային անունների համար
Ոչ միջազգային դոմենային անուններում գծիկները փյունիկոդ վերծանումը կանխելու համար, միջազգայնացված դոմենային անուններում փյունիկոդ հաջորդականություններին նախորդում է `xn--` տողը։ Սա կոչվում է ACE (ASCII համատեղելի կոդավորում)։ Այսպիսով, «bücher.tld» դոմենի անունը URL-ում կներկայացվի որպես «xn--bcher-kva.tld»։

## Օրինակներ
Հետևյալ աղյուսակը ցույց է տալիս փյունիկոդ կոդավորման օրինակներ տարբեր տեսակի մուտքային տվյալների համար։

## Ծանոթագրություններ

Կատեգորիա:Ծրագրավորում
Կատեգորիա:Համակարգչային և հեռահաղորդակցության ստանդարտներ