InglesPransesEspanyol

OnWorks favicon

perlunitut - Online sa Cloud

Patakbuhin ang perlunitut sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command na perlunitut na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


perlunitut - Tutorial sa Perl Unicode

DESCRIPTION


Tapos na ang mga araw ng pakikipag-fling lang. Ito ay mahusay na itinatag na moderno
ang mga programa ay kailangang may kakayahang makipag-usap ng mga nakakatawang titik na may accent, at mga bagay tulad ng euro
mga simbolo. Nangangahulugan ito na ang mga programmer ay nangangailangan ng mga bagong gawi. Madaling i-program na may kakayahang Unicode
software, ngunit nangangailangan ito ng disiplina para magawa ito ng tama.

Maraming dapat malaman tungkol sa mga set ng character, at mga text encoding. Ito ay malamang na pinakamahusay na
gumugol ng isang buong araw sa pag-aaral ng lahat ng ito, ngunit ang mga pangunahing kaalaman ay maaaring matutunan sa ilang minuto.

Gayunpaman, hindi ito ang mga pangunahing kaalaman. Ipinapalagay na alam mo na ang pagkakaiba
sa pagitan ng mga byte at mga character, at mapagtanto (at tanggapin!) na mayroong maraming iba't ibang
mga set ng character at pag-encode, at dapat na tahasan ang iyong programa tungkol sa mga ito.
Ang inirerekomendang pagbabasa ay "Ang Ganap na Minimum sa Bawat Software Developer na Ganap,
Positibong Dapat Malaman Tungkol sa Unicode at Character Sets (No Excuses!)" ni Joel Spolsky, sa
<http://joelonsoftware.com/articles/Unicode.html>.

Ang tutorial na ito ay nagsasalita sa halip ganap na mga termino, at nagbibigay lamang ng isang limitadong view ng
kayamanan ng mga tampok na nauugnay sa string ng character na iniaalok ni Perl. Para sa karamihan ng mga proyekto,
malamang na sapat na ang impormasyong ito.

Kahulugan
Mahalagang ituwid muna ang ilang bagay. Ito ang pinakamahalagang bahagi nito
pagtuturo. Maaaring sumalungat ang view na ito sa iba pang impormasyon na maaaring nakita mo sa
web, ngunit iyon ay kadalasan dahil maraming mga mapagkukunan ang mali.

Maaaring kailanganin mong muling basahin ang buong seksyong ito ng ilang beses...

Unicode

Unicode ay isang set ng character na may puwang para sa maraming karakter. Ang ordinal na halaga ng a
ang tauhan ay tinatawag na a code punto. (Ngunit sa pagsasagawa, ang pagkakaiba sa pagitan ng code point
at ang karakter ay malabo, kaya ang mga termino ay madalas na ginagamit nang palitan.)

Maraming, maraming mga code point, ngunit gumagana ang mga computer gamit ang mga byte, at ang isang byte ay may puwang para sa
256 values ​​lang. Ang Unicode ay may higit pang mga character kaysa doon, kaya kailangan mo ng paraan upang makagawa
naa-access ang mga ito.

Ang Unicode ay naka-encode gamit ang ilang nakikipagkumpitensyang pag-encode, kung saan ang UTF-8 ang pinaka ginagamit. Sa
isang Unicode encoding, maramihang kasunod na byte ay maaaring gamitin upang mag-imbak ng isang solong code point, o
simple lang: karakter.

UTF-8

UTF-8 ay isang Unicode encoding. Maraming tao ang nag-iisip na ang Unicode at UTF-8 ay magkapareho,
ngunit hindi sila. Mayroong higit pang mga Unicode encoding, ngunit karamihan sa mundo ay may pamantayan
sa UTF-8.

Tinatrato ng UTF-8 ang unang 128 codepoint, 0..127, kapareho ng ASCII. Isang byte lang ang kinukuha nila
bawat karakter. Ang lahat ng iba pang mga character ay naka-encode bilang dalawa hanggang apat na byte gamit ang isang complex
scheme. Sa kabutihang palad, si Perl ang humahawak nito para sa amin, kaya hindi namin kailangang mag-alala tungkol dito.

teksto string (character mga string)

teksto string, O katangian string ay gawa sa mga tauhan. Ang mga byte ay hindi nauugnay dito, at
gayundin ang mga pag-encode. Ang bawat karakter ay ganoon lamang: ang karakter.

Sa isang text string, gagawin mo ang mga bagay tulad ng:

$text =~ s/foo/bar/;
kung ($string =~ /^\d+$/) { ... }
$text = ucfirst $text;
aking $character_count = haba $text;

Ang halaga ng isang character ("ord", "chr") ay ang katumbas na Unicode code point.

binary string (byte mga string)

binary string, O byte string ay gawa sa mga byte. Dito, wala kang mga karakter, basta
byte. Lahat ng komunikasyon sa labas ng mundo (anumang bagay sa labas ng iyong kasalukuyang Perl
proseso) ay ginagawa sa binary.

Sa isang binary string, gagawin mo ang mga bagay tulad ng:

my (@length_content) = i-unpack ang "(V/a)*", $binary;
$binary =~ s/\x00\x0F/\xFF\xF0/; # para sa matapang :)
print {$fh} $binary;
aking $byte_count = haba $binary;

Pag-encode

Pag-encode (bilang isang pandiwa) ay ang conversion mula sa teksto sa doble. Upang mag-encode, kailangan mong mag-supply
ang target na encoding, halimbawa "iso-8859-1" o "UTF-8". Ang ilang mga pag-encode, tulad ng
"iso-8859" ("latin") range, hindi sinusuportahan ang buong Unicode standard; mga karakter na
hindi maaaring katawanin ay nawala sa conversion.

Pagkabasa

Pagkabasa ay ang conversion mula sa doble sa teksto. Upang mag-decode, kailangan mong malaman kung ano ang pag-encode
ay ginamit sa yugto ng pag-encode. At higit sa lahat, ito ay dapat na decodable. Ito
walang kabuluhan na i-decode ang isang PNG na imahe sa isang text string.

Panloob format

Si Perl ay may isang panloob format, isang encoding na ginagamit nito para mag-encode ng mga string ng text para magawa nito
itago ang mga ito sa memorya. Ang lahat ng mga string ng teksto ay nasa panloob na format na ito. Sa katunayan, mga string ng teksto
ay hindi kailanman sa anumang iba pang format!

Hindi ka dapat mag-alala tungkol sa kung ano ang format na ito, dahil awtomatikong ginagawa ang conversion
kapag nag-decode o nag-encode ka.

Iyong bago toolkit
Idagdag sa iyong karaniwang heading ang sumusunod na linya:

gamitin ang Encode qw(encode decode);

O, kung tinatamad ka,:

gumamit ng Encode;

I / O pag-agos (Ang tunay 5 minuto pagtuturo)
Ang karaniwang daloy ng input/output ng isang programa ay:

1. Tumanggap at mag-decode
2. Proseso
3. Encode at output

Kung binary ang iyong input, at dapat na manatiling binary, hindi mo ito dapat i-decode sa a
string ng teksto, siyempre. Ngunit sa lahat ng iba pang mga kaso, dapat mong i-decode ito.

Ang pag-decode ay hindi maaaring mangyari nang mapagkakatiwalaan kung hindi mo alam kung paano na-encode ang data. Kung makarating ka sa
pumili, magandang ideya na mag-standardize sa UTF-8.

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

Nangyayari ang pagproseso tulad ng alam mo dati. Ang pagkakaiba lang ay ginagamit mo na ngayon
mga character sa halip na mga byte. Iyan ay lubhang kapaki-pakinabang kung gagamit ka ng mga bagay tulad ng "substr", o
"haba".

Mahalagang matanto na walang mga byte sa isang text string. Siyempre, mayroon si Perl
panloob na pag-encode nito upang iimbak ang string sa memorya, ngunit huwag pansinin iyon. Kung kailangan mong gawin
anumang bagay na may bilang ng mga byte, malamang na pinakamahusay na ilipat ang bahaging iyon sa hakbang 3, lang
pagkatapos mong ma-encode ang string. Pagkatapos ay alam mo nang eksakto kung gaano karaming mga byte ito sa
patutunguhang string.

Ang syntax para sa pag-encode ng mga string ng teksto sa mga binary string ay kasing simple ng pag-decode:

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

Kung kailangan mong malaman ang haba ng string sa mga byte, ngayon ang perpektong oras para doon.
Dahil isa na ngayong byte string ang $body, iuulat ng "length" ang bilang ng mga byte, sa halip na
ang bilang ng mga character. Ang bilang ng mga character ay hindi na kilala, dahil ang mga character
umiiral lamang sa mga string ng teksto.

aking $byte_count = haba $body;

At kung ang protocol na iyong ginagamit ay sumusuporta sa isang paraan ng pagpapaalam sa tatanggap kung alin
pag-encode ng character na ginamit mo, mangyaring tulungan ang tatanggap sa pamamagitan ng paggamit sa feature na iyon! Para sa
halimbawa, sinusuportahan ng E-mail at HTTP ang mga header ng MIME, para magamit mo ang header na "Uri ng Nilalaman."
Maaari din silang magkaroon ng "Content-Length" upang isaad ang bilang ng bytes, na palaging a
magandang ideya na magbigay kung ang numero ay kilala.

"Uri ng Nilalaman: text/plain; charset=UTF-8",
"Haba ng Nilalaman: $byte_count"

BUOD


I-decode ang lahat ng iyong natanggap, i-encode ang lahat ng iyong ipinadala. (Kung ito ay data ng teksto.)

Q at A (O FAQ)


Pagkatapos basahin ang dokumentong ito, dapat mo ring basahin ang perlunifaq, pagkatapos ay kailanganinntro.

MGA KUWENTA


Salamat kay Johan Vromans mula sa Squirrel Consultancy. Kanyang UTF-8 rants sa panahon ng Amsterdam
Ang mga pagpupulong ng Perl Mongers ay naging interesado at determinado akong malaman kung paano gamitin ang karakter
pag-encode sa Perl sa mga paraang hindi madaling masira.

Salamat kay Gerard Goossen mula sa TTY. Ang kanyang pagtatanghal na "UTF-8 sa ligaw" (Dutch Perl
Workshop 2006) ay nagbigay inspirasyon sa akin na i-publish ang aking mga saloobin at isulat ang tutorial na ito.

Salamat sa mga taong nagtanong tungkol sa ganitong uri ng mga bagay-bagay sa ilang Perl IRC channel, at
ay patuloy na nagpapaalala sa akin na ang isang mas simpleng paliwanag ay kailangan.

Salamat sa mga taong nagrepaso sa dokumentong ito para sa akin, bago ito naging publiko. Sila ay:
Benjamin Smith, Jan-Pieter Cornet, Johan Vromans, Lukas Mai, Nathan Gray.

Gumamit ng perlunitut online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

Linux command

Ad