ASCII na Unicode: ni nini na hutumika kwa nini

Kompyuta inaelewa namba tu, kwa hivyo kila herufi unayoiona kwenye skrini ni msimbo. ASCII ilikuwa jedwali la kwanza la misimbo kuwa kiwango, na Unicode ndilo tunalotumia leo kuandika kwa lugha yoyote. Hapa unaona jinsi vinavyofanya kazi, misimbo ipi inafaa kujua, kwa nini wakati mwingine alama za ajabu huonekana badala ya alama za herufi, na jinsi ya kuangalia yote kwenye jedwali.

Imesasishwa:

Usimbaji wa herufi ni nini

Usimbaji ni makubaliano: «namba 65 inamaanisha herufi A». Unapoandika maandishi, programu huhifadhi namba hizo; mtu mwingine akiyafungua, programu yake huzitafsiri tena kuwa herufi kwa makubaliano yaleyale. Ikiwa wawili hawatumii jedwali moja, maandishi hutoka vibaya.

Lazima kutenganisha mawazo mawili. Moja ni seti ya herufi, orodha ya namba zipi zinalingana na alama zipi. Lingine ni jinsi namba hizo zinavyohifadhiwa katika baiti. Katika ASCII mawili hayo yanalingana kwa urahisi; katika Unicode hayalingani, na hapo ndipo UTF-8 inapoingia.

ASCII: herufi 128 za biti 7

ASCII (kifupi cha American Standard Code for Information Interchange) ilisanifishwa katika miaka ya 1960. Hutumia biti 7, yaani 2 kwa nguvu ya 7 = misimbo 128, kutoka 0 hadi 127. Kati ya hiyo, 33 ni herufi za udhibiti (kutoka 0 hadi 31 na 127) na 95 zinachapishika (kutoka 32 hadi 126, pamoja na nafasi).

Haina herufi zenye alama, wala ñ, wala alama ya euro: iliundwa kwa ajili ya Kiingereza. Hilo linaeleza kwa nini majedwali mengine yalihitajika baadaye.

Misimbo utakayokutana nayo zaidi. Nafasi (32) huhesabiwa kama inayochapishika ingawa haionekani.
Herufi ya udhibitiDesimaliHeksadesimaliBinary (biti 7)Hutumika kwa nini
Null (NUL)0000000000Huashiria mwisho wa mfuatano katika lugha kadhaa
Tab ya mlalo (TAB)9090001001Huruka hadi kituo kinachofuata cha tab
Mstari mpya (LF)100A0001010Hushuka hadi mstari unaofuata
Kurejesha kishale (CR)130D0001101Hurudi mwanzo wa mstari
Escape (ESC)271B0011011Huanzisha mfuatano wa udhibiti
Nafasi32200100000Herufi ya kwanza inayochapishika
Futa (DEL)1277F1111111Hufuta herufi

Uhusiano unaofaa kukumbuka

Jedwali halijapangwa kwa bahati. Kwa mipangilio michache unaweza kusoma misimbo kwa kumbukumbu.

Mwisho wa mstari: LF, CR na CRLF

Mstari mpya unaonekana jambo rahisi, lakini huandikwa tofauti kulingana na mfumo. Unix, Linux na macOS hutumia herufi moja, LF (10). Windows hutumia mbili mfululizo, CR na LF (13 na 10), zinazojulikana kama CRLF. Teletaipu za zamani zilihitaji amri mbili tofauti: kurudisha kishale mwanzoni na kusogeza karatasi mstari mmoja.

Tofauti hiyo ndiyo sababu ya faili zinazoonekana zote kwenye mstari mmoja katika kihariri rahisi, au zenye alama ya ajabu mwishoni mwa kila mstari. Ukitaka kujua kila moja ina msimbo gani, andika LF au CR kwenye kisanduku cha kutafuta cha jedwali la ASCII.

«ASCII iliyopanuliwa» si kiwango

Kwa kuwa baiti ina biti 8 na ASCII hutumia 7 tu, misimbo 128 ilibaki huru (kutoka 128 hadi 255) na kila mtengenezaji na eneo liliijaza kwa njia yake. Hilo hujulikana kama «ASCII iliyopanuliwa», lakini hakuna jedwali moja: kuna mengi, yanayoitwa kurasa za misimbo. Mawili yanayojulikana zaidi ni Latin-1 (ISO-8859-1), ambapo é ni msimbo 233, na Windows-1252, linalofanana lakini lenye tofauti katika misimbo 128 hadi 159 (hapo kuna, kwa mfano, euro).

Tatizo ni kwamba msimbo 233 unamaanisha «é» katika jedwali moja na kitu kingine katika jingine. Maandishi yaliyoandikwa kwa jedwali moja na kusomwa kwa jingine yalionyesha takataka. Unicode ilizaliwa kukomesha mkanganyiko huo.

Unicode na UTF-8

Unicode hupa namba ya kipekee, inayoitwa nukta ya msimbo, kila herufi ya karibu mifumo yote ya uandishi duniani, pamoja na alama na emoji. Leo ina zaidi ya herufi 150,000. Huandikwa kwa kiambishi U+ na kwa heksadesimali: «A» ni U+0041, «ñ» ni U+00F1, euro ni U+20AC na emoji ya uso unaotabasamu ni U+1F600. Nukta 128 za kwanza za msimbo ni zilezile za ASCII.

UTF-8 ni njia inayotumika zaidi ya kuhifadhi namba hizo katika baiti, na hutumia kati ya 1 na 4 kulingana na herufi. Zile 128 za ASCII huchukua baiti moja inayofanana na ya siku zote, kwa hivyo maandishi ya ASCII pia ni maandishi halali ya UTF-8. Zilizobaki huchukua baiti zaidi.

Kadiri unavyoondoka mbali na ASCII, herufi huchukua baiti zaidi.
HerufiNukta ya msimboBaiti katika UTF-8Baiti (heksadesimali)
AU+0041141
éU+00E92C3 A9
ñU+00F12C3 B1
€U+20AC3E2 82 AC
😀U+1F6004F0 9F 98 80

Kwa nini «Ã±» huonekana badala ya «ñ»

Ni kosa la kawaida zaidi na lina maelezo kamili. ñ katika UTF-8 ni baiti mbili: C3 na B1. Ikiwa programu inadhani maandishi yako katika Latin-1, husoma kila baiti kama herufi: C3 ni «Ã» na B1 ni «±». Matokeo: «Ã±». Hali ni hiyohiyo kwa «é», inayoonekana kama «Ã©», na kwa «canción», inayoonekana kama «canción».

Suluhisho karibu kila mara ni kuiambia programu ifungue faili kama UTF-8 (katika kihariri cha maandishi au katika mipangilio ya kuingiza data ya lahajedwali). Hali ikitokea kinyume, maandishi ya Latin-1 yakisomwa kama UTF-8, mara nyingi huonekana almasi zenye alama ya swali, kwa sababu baiti hizo pekee hazifanyi mfuatano halali wa UTF-8.

Jinsi ya kutumia jedwali la ASCII na kibadilishaji

Zana ya «Jedwali la ASCII» inaonyesha herufi 128 pamoja na msimbo wake kwa desimali, heksadesimali, oktali na binary, na jina la zile za udhibiti.

  1. Andika kwenye kisanduku cha kutafuta herufi, msimbo au jina la herufi ya udhibiti (kwa mfano A, 65, 41 au LF) ili kupata safu yake.
  2. Tumia vitufe vya kuchuja (Udhibiti, Tarakimu, Herufi kubwa, Herufi ndogo, Alama) kuona kundi moja tu.
  3. Ili kubadilisha, andika maandishi kwenye «Maandishi» na uchague umbizo (desimali, heksadesimali, oktali au binary): chini zinaonekana misimbo. «Hola» inatoa 72 111 108 97 kwa desimali na 48 6F 6C 61 kwa heksadesimali.
  4. Unaweza pia kufanya kinyume: bandika misimbo iliyotenganishwa kwa nafasi au koma kwenye «Misimbo» na maandishi yanatengenezwa. Kwa heksadesimali viambishi kama 0x41 vinakubaliwa.

Maandishi yakiwa na herufi zisizo za ASCII, kama ñ, zana inaarifu na kuonyesha msimbo wake wa Unicode. Ili kuona baiti halisi katika UTF-8 tumia «Maandishi kuwa binary»: ñ inatoa 11000011 10110001, baiti mbili za biti 8. Mipaka: jedwali linaonyesha ASCII ya kawaida tu, si iliyopanuliwa, na kila kitu kinakokotolewa kwenye kivinjari chako bila kutuma maandishi kwa seva yoyote.

Maswali yanayoulizwa mara kwa mara

ASCII ina herufi ngapi?

128, zenye misimbo kutoka 0 hadi 127 na biti 7 kila moja. Kati ya hizo, 33 ni za udhibiti na 95 zinachapishika, pamoja na nafasi.

Msimbo wa ASCII wa herufi A na a ni upi?

«A» ni 65 (41 kwa heksadesimali, 01000001 kwa binary) na «a» ni 97 (61 kwa heksadesimali, 01100001 kwa binary). Daima zinatofautiana kwa 32.

Tofauti kati ya ASCII na Unicode ni ipi?

ASCII ina herufi 128 zilizokusudiwa Kiingereza. Unicode ina zaidi ya 150,000, za karibu lugha zote na emoji, na 128 zake za kwanza ni zilezile za ASCII.

UTF-8 ni nini?

Ni njia inayotumika zaidi ya kuhifadhi maandishi ya Unicode katika baiti. Hutumia baiti 1 hadi 4 kwa herufi: za ASCII huchukua moja, ñ huchukua mbili na emoji nne.

Kwa nini maandishi yangu yanaonyesha «Ã±» au «Ã©»?

Kwa sababu maandishi yaliyohifadhiwa kwa UTF-8 yanasomwa kama Latin-1. Fungua faili ukitaja usimbaji wa UTF-8 na tatizo linaisha.