GoGPT Best VPN GoSearch

Favicon OnWorks

perlunitut - Online in the Cloud

Rulați perlunitut în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda perlunitut care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


perlunitut - Tutorial Perl Unicode

DESCRIERE


Zilele în care se arunca sforile în jur s-au încheiat. Este bine stabilit că modern
programele trebuie să fie capabile să comunice litere amuzante accentuate și lucruri precum euro
simboluri. Aceasta înseamnă că programatorii au nevoie de noi obiceiuri. Este ușor să programați compatibil Unicode
software, dar necesită disciplină pentru a o face corect.

Sunt multe de știut despre seturile de caractere și codificarea textului. Probabil că cel mai bine este să
petreceți o zi întreagă învățând toate acestea, dar elementele de bază pot fi învățate în câteva minute.

Acestea nu sunt totuși elementele de bază. Se presupune că știți deja diferența
între octeți și caractere și realizați (și acceptați!) că există multe diferite
seturi de caractere și codificări și că programul dvs. trebuie să fie explicit cu privire la acestea.
Lectura recomandată este „Minimul absolut pentru fiecare dezvoltator de software Absolut,
Trebuie să știți pozitiv despre Unicode și seturile de caractere (fără scuze!)” de Joel Spolsky, la
<http://joelonsoftware.com/articles/Unicode.html>.

Acest tutorial vorbește în termeni mai degrabă absoluti și oferă doar o vedere limitată a
multitudinea de caracteristici legate de șirurile de caractere pe care Perl le are de oferit. Pentru majoritatea proiectelor,
probabil că aceste informații vor fi suficiente.

Definiții
Este important să clarificați mai întâi câteva lucruri. Aceasta este cea mai importantă parte a acestui lucru
tutorial. Această vizualizare poate intra în conflict cu alte informații pe care este posibil să le fi găsit pe
web, dar asta se datorează în mare parte faptului că multe surse sunt greșite.

Poate fi necesar să recitiți toată această secțiune de câteva ori...

Unicode

Unicode este un set de personaje cu spațiu pentru multe personaje. Valoarea ordinală a lui a
caracterul se numește a cod punct. (Dar, în practică, distincția dintre punctul de cod
iar caracterul este neclar, astfel încât termenii sunt adesea folosiți interschimbabil.)

Există multe, multe puncte de cod, dar computerele lucrează cu octeți și un octet are loc pentru
doar 256 de valori. Unicode are mult mai multe caractere decât atât, așa că aveți nevoie de o metodă de făcut
acestea accesibile.

Unicode este codificat folosind mai multe codificări concurente, dintre care UTF-8 este cel mai utilizat. În
o codificare Unicode, mai mulți octeți următori pot fi utilizați pentru a stoca un singur punct de cod sau
simplu: caracter.

UTF-8

UTF-8 este o codificare Unicode. Mulți oameni cred că Unicode și UTF-8 sunt același lucru,
dar nu sunt. Există mai multe codificări Unicode, dar o mare parte din lume s-a standardizat
pe UTF-8.

UTF-8 tratează primele 128 de puncte de cod, 0..127, la fel ca ASCII. Ei iau doar un octet
pe caracter. Toate celelalte caractere sunt codificate ca doi până la patru octeți folosind un complex
sistem. Din fericire, Perl se ocupă de asta pentru noi, așa că nu trebuie să ne facem griji pentru asta.

Text siruri (caracter siruri de caractere)

Text siruri, caracter siruri sunt formate din personaje. Octeții sunt irelevanți aici și
la fel sunt codurile. Fiecare personaj este doar asta: personajul.

Pe un șir de text, ați face lucruri precum:

$text =~ s/foo/bar/;
dacă ($șir =~ /^\d+$/) { ... }
$text = ucfirst $text;
my $character_count = lungime $text;

Valoarea unui caracter ("ord", "chr") este punctul de cod Unicode corespunzător.

Binar siruri (octet siruri de caractere)

Binar siruri, octet siruri sunt formate din octeți. Aici, nu ai personaje, doar
octeți. Toată comunicarea cu lumea exterioară (orice lucru în afara Perl
proces) se face în binar.

Pe un șir binar, ați face lucruri precum:

my (@length_content) = despachetează „(V/a)*”, $binar;
$binar =~ s/\x00\x0F/\xFF\xF0/; # pentru curajoși :)
print {$fh} $binar;
my $byte_count = lungime $binar;

codificare

codificare (ca verb) este conversia din a) Sport and Nutrition Awareness Day in Manasia Around XNUMX people from the rural commune Manasia have participated in a sports and healthy nutrition oriented activity in one of the community’s sports ready yards. This activity was meant to gather, mainly, middle-aged people from a Romanian rural community and teach them about the benefits that sports have on both their mental and physical health and on how sporting activities can be used to bring people from a community closer together. Three trainers were made available for this event, so that the participants would get the best possible experience physically and so that they could have the best access possible to correct information and good sports/nutrition practices. b) Sports Awareness Day in Poiana Țapului A group of young participants have taken part in sporting activities meant to teach them about sporting conduct, fairplay, and safe physical activities. The day culminated with a football match. la binar. Pentru a codifica, trebuie să furnizați
codificarea țintă, de exemplu „iso-8859-1” sau „UTF-8”. Unele codificări, cum ar fi
Gama „iso-8859” („latină”), nu acceptă standardul Unicode complet; personaje care
nu pot fi reprezentate se pierd în conversie.

Decodare

Decodare este conversia din binar la a) Sport and Nutrition Awareness Day in Manasia Around XNUMX people from the rural commune Manasia have participated in a sports and healthy nutrition oriented activity in one of the community’s sports ready yards. This activity was meant to gather, mainly, middle-aged people from a Romanian rural community and teach them about the benefits that sports have on both their mental and physical health and on how sporting activities can be used to bring people from a community closer together. Three trainers were made available for this event, so that the participants would get the best possible experience physically and so that they could have the best access possible to correct information and good sports/nutrition practices. b) Sports Awareness Day in Poiana Țapului A group of young participants have taken part in sporting activities meant to teach them about sporting conduct, fairplay, and safe physical activities. The day culminated with a football match. . Pentru a decoda, trebuie să știți ce codificare
a fost utilizat în timpul fazei de codificare. Și mai presus de toate, trebuie să fie ceva decodabil. Aceasta
nu are prea mult sens să decodezi o imagine PNG într-un șir de text.

Intern format

Perl are un intern format, o codificare pe care o folosește pentru a codifica șiruri de text, astfel încât să poată face acest lucru
stocați-le în memorie. Toate șirurile de text sunt în acest format intern. De fapt, șiruri de text
nu sunt niciodată în alt format!

Nu ar trebui să vă faceți griji despre ce este acest format, deoarece conversia se face automat
când decodați sau codificați.

Ta nou Toolkit
Adăugați la titlul dvs. standard următorul rând:

utilizați Encode qw(encode decode);

Sau, dacă ești leneș, doar:

utilizați Encode;

I / O debit ( curent 5 minut tutorial)
Fluxul tipic de intrare/ieșire al unui program este:

1. Primiți și decodați
2. Proces
3. Codificare și ieșire

Dacă intrarea dvs. este binară și ar trebui să rămână binară, nu ar trebui să o decodați în a
șir de text, desigur. Dar în toate celelalte cazuri, ar trebui să-l decodați.

Decodarea nu poate avea loc în mod fiabil dacă nu știți cum au fost codificate datele. Dacă ajungi la
alegeți, este o idee bună să standardizați pe UTF-8.

my $foo = decode('UTF-8', obține ''http://example.com/„);
my $bar = decode('ISO-8859-1', readline STDIN);
my $xyzzy = decode('Windows-1251', $cgi->param('foo'));

Procesarea are loc așa cum știai înainte. Singura diferență este că acum îl utilizați
caractere în loc de octeți. Este foarte util dacă folosești lucruri precum „substr” sau
"lungime".

Este important să realizați că nu există octeți într-un șir de text. Desigur, Perl are
codificarea sa internă pentru a stoca șirul în memorie, dar ignorați asta. Dacă trebuie să faci
orice cu numărul de octeți, probabil cel mai bine este să mutați acea parte la pasul 3, doar
după ce ați codificat șirul. Atunci știi exact câți octeți vor fi în
șir de destinație.

Sintaxa pentru codificarea șirurilor de text în șiruri binare este la fel de simplă ca și decodarea:

$corp = encode('UTF-8', $corp);

Dacă trebuia să știi lungimea șirului în octeți, acum este momentul perfect pentru asta.
Deoarece $body este acum un șir de octeți, „lungimea” va raporta numărul de octeți, în loc de
numărul de caractere. Nu se mai cunoaste numarul de caractere, din cauza caracterelor
există doar în șiruri de text.

my $byte_count = lungime $corp;

Și dacă protocolul pe care îl utilizați acceptă o modalitate de a anunța destinatarului care
codificarea caracterelor pe care ați folosit-o, vă rugăm să ajutați receptorul folosind această funcție! Pentru
de exemplu, e-mail-ul și HTTP acceptă anteturile MIME, astfel încât să puteți utiliza antetul „Content-Type”.
Ele pot avea, de asemenea, „Content-Length” pentru a indica numărul de bytes, care este întotdeauna a
idee bună să furnizați dacă numărul este cunoscut.

„Tip de conținut: text/plat; set de caractere=UTF-8”,
„Lungimea conținutului: $byte_count”

REZUMAT


Decodați tot ce primiți, codificați tot ce trimiteți. (Dacă este vorba de date text.)

Q și A (Sau FAQ)


După ce ați citit acest document, ar trebui să citiți și perlunifaq, apoi perluniintro.

MULȚUMIRI


Mulțumim lui Johan Vromans de la Squirrel Consultancy. UTF-8-i dezvăluie în timpul Amsterdamului
Întâlnirile Perl Mongers m-au interesat și m-au determinat să aflu cum să folosesc caracterul
codificări în Perl în moduri care nu se rup ușor.

Mulțumim lui Gerard Goossen de la TTY. Prezentarea sa „UTF-8 în sălbăticie” (Dutch Perl
Workshop 2006) m-a inspirat să-mi public gândurile și să scriu acest tutorial.

Mulțumim oamenilor care au întrebat despre acest tip de lucruri pe mai multe canale Perl IRC și
mi-au reamintit în mod constant că era nevoie de o explicație mai simplă.

Mulțumesc oamenilor care au revizuit acest document pentru mine, înainte de a deveni public. Sunt:
Benjamin Smith, Jan-Pieter Cornet, Johan Vromans, Lukas Mai, Nathan Gray.

Utilizați perlunitut online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

Ad




×
publicitate
❤️Cumpără, rezervă sau cumpără aici — gratuit, contribuind la menținerea serviciilor gratuite.