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.
| Herufi ya udhibiti | Desimali | Heksadesimali | Binary (biti 7) | Hutumika kwa nini |
|---|---|---|---|---|
| Null (NUL) | 0 | 00 | 0000000 | Huashiria mwisho wa mfuatano katika lugha kadhaa |
| Tab ya mlalo (TAB) | 9 | 09 | 0001001 | Huruka hadi kituo kinachofuata cha tab |
| Mstari mpya (LF) | 10 | 0A | 0001010 | Hushuka hadi mstari unaofuata |
| Kurejesha kishale (CR) | 13 | 0D | 0001101 | Hurudi mwanzo wa mstari |
| Escape (ESC) | 27 | 1B | 0011011 | Huanzisha mfuatano wa udhibiti |
| Nafasi | 32 | 20 | 0100000 | Herufi ya kwanza inayochapishika |
| Futa (DEL) | 127 | 7F | 1111111 | Hufuta herufi |
Uhusiano unaofaa kukumbuka
Jedwali halijapangwa kwa bahati. Kwa mipangilio michache unaweza kusoma misimbo kwa kumbukumbu.
- Tarakimu kutoka «0» hadi «9» zinachukua 48 hadi 57 (30 hadi 39 kwa heksadesimali). Thamani ya tarakimu ni msimbo wake toa 48: «7» ni 55, na 55 − 48 = 7.
- Herufi kubwa zinaanzia 65 («A») hadi 90 («Z») na ndogo kutoka 97 («a») hadi 122 («z»).
- Tofauti kati ya herufi kubwa na ndogo yake ni 32 kila mara: «A» = 65 na «a» = 97; «C» = 67 na «c» = 99. Katika binary biti moja tu hubadilika: 01000001 kwa «A» na 01100001 kwa «a».
- Ili kujua herufi kubwa iko nafasi ya ngapi katika alfabeti, toa 64: «C» ni 67 na 67 − 64 = 3, herufi ya tatu.
- Kwa kuwa herufi kubwa zote (65 hadi 90) zina misimbo midogo kuliko ndogo (97 hadi 122), mpangilio wa alfabeti «kwa msimbo» huweka «Zebra» kabla ya «apple». Programu nyingi zinahitaji chaguo tofauti la ulinganisho ili kupanga vizuri.
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.
| Herufi | Nukta ya msimbo | Baiti katika UTF-8 | Baiti (heksadesimali) |
|---|---|---|---|
| A | U+0041 | 1 | 41 |
| é | U+00E9 | 2 | C3 A9 |
| ñ | U+00F1 | 2 | C3 B1 |
| € | U+20AC | 3 | E2 82 AC |
| 😀 | U+1F600 | 4 | F0 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.
- Andika kwenye kisanduku cha kutafuta herufi, msimbo au jina la herufi ya udhibiti (kwa mfano A, 65, 41 au LF) ili kupata safu yake.
- Tumia vitufe vya kuchuja (Udhibiti, Tarakimu, Herufi kubwa, Herufi ndogo, Alama) kuona kundi moja tu.
- 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.
- 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.