Tábìlì ASCII: bí àwọn nọ́mbà 128 ṣe di ìpìlẹ̀ ọ̀rọ̀-ìkọ̀wé
ASCII, tí ó dúró fún American Standard Code for Information Interchange, ni ìdíwọ̀n tí ó kọ́ àwọn kọ̀ǹpútà láti fohùnṣọ̀kan lórí kín ni lẹ́tà kan jẹ́. A tẹ̀ ẹ́ jáde ní 1963, a sì tún un ṣe dáadáa jálẹ̀ àwọn ọdún 1960, ó ń so gbogbo àmì ìpìlẹ̀ ti ọ̀rọ̀-ìkọ̀wé Gẹ̀ẹ́sì, àwọn nọ́mbà, àti àwọn àmì ìdarí díẹ̀ mọ́ àwọn nọ́mbà tí ẹ̀rọ kan lè fi pamọ́ tí ó sì lè fi ránṣẹ́. Nígbà tí o bá tẹ bọ́tìnnì fún lẹ́tà A ńlá, kọ̀ǹpútà rẹ kì í fi àwòrán pamọ́, ó ń fi nọ́mbà 65 pamọ́. ASCII ni tábìlì ìwádìí tí ó ń mú kí nọ́mbà náà túmọ̀ sí A níbikíbi tí ó bá rìn dé.
Ìdíwọ̀n náà kúkúrú lọ́nà tí a mọ̀ dáadáa. ASCII jẹ́ kóòdù 7-bit, èyí tí ó túmọ̀ sí pé àmì kọ̀ọ̀kan wọ inú àwọn nọ́mbà bíráríri méje, gbogbo àkójọpọ̀ náà sì ta ní 2 sí agbára 7, tàbí àwọn kóòdù 128 tí ó ọ̀tọ̀ọ̀tọ̀ láti 0 sí 127. Ìdẹ̀kúrù yẹn jẹ́ ohun tí a gbèrò pẹ̀lú ìmọ̀. Àwọn teletype àti modem ìjímìjí lọ́ra tí wọ́n sì gbówó lórí, nítorí náà bit kọ̀ọ̀kan ṣe pàtàkì. Bit méje tó láti bo àwọn lẹ́tà Latin ńlá àti kékeré, àwọn nọ́mbà mẹ́wàá, àwọn àmì ọ̀rọ̀ tí ó wọ́pọ̀, àti àwọn àmì ìdarí tí ó ń mú kí àwọn ẹ̀rọ dọ́gba pẹ̀lú ara wọn, pẹ̀lú bit kan tí ó kù tí ọ̀pọ̀lọpọ̀ ètò lò fún àyẹ̀wò àṣìṣe.

Ìdajì méjì: àwọn àmì ìdarí àti àwọn àmì tí a lè tẹ̀ jáde
Tábìlì náà pín sí àgbègbè méjì tí ó dájú. Àwọn kóòdù 0 sí 31, pẹ̀lú kóòdù 127 (DEL), ni àwọn àmì ìdarí. Àwọn wọ̀nyí kì í fi àpẹrẹ hàn lórí ìtẹ̀lẹ̀. Dípò bẹ́ẹ̀, wọ́n ń kọ ẹ̀rọ kan láti ṣe ohun kan: kóòdù 9 jẹ́ tab tí ó gòkè, kóòdù 10 jẹ́ line feed tí ó ń gbé lọ sí ìlà tuntun, kóòdù 13 jẹ́ carriage return, kóòdù 7 sì jẹ́ agogo tí ó ti máa ń jẹ́ kí ebute kan ró rí. Àwọn kóòdù ìfihàn wọ̀nyí wà mẹ́tàlélọ́gbọ̀n (33) ní gbogbo rẹ̀, bí ó tilẹ̀ jẹ́ pé ọ̀pọ̀lọpọ̀ nínú wọn jẹ́ ohun ìtàn ìsìnyí, line feed, carriage return, àti tab wà pàtàkì fún bí a ṣe ń ṣètò àwọn fáìlì ọ̀rọ̀ lónìí.
Àwọn kóòdù 32 sí 126 ni àwọn àmì tí a lè tẹ̀ jáde, mẹ́rìnlélọ́gọ́rùn-ún dín márùn-ún (95) ni gbogbo rẹ̀. Kóòdù 32 jẹ́ ààyè (space), tí a kà sí àmì tí a lè tẹ̀ jáde nítorí pé ó ń gbé àmì-kọ̀ǹpútà (cursor) síwájú bí ó tilẹ̀ jẹ́ pé kò fi ohunkóhun hàn. Láti ibẹ̀ o rí àwọn àmì ọ̀rọ̀ àti àmì mìíràn, àwọn nọ́mbà 0 sí 9 ní kóòdù 48 sí 57, àwọn lẹ́tà ńlá A sí Z ní 65 sí 90, àti àwọn lẹ́tà kékeré a sí z ní 97 sí 122. Ànímọ́ dídára kan ń jáde láti inú àwòṣe yìí: àwọn ẹ̀yà kékeré àti ńlá ti lẹ́tà kan náà yàtọ̀ sí ara wọn ní ìwọ̀n 32 gan-an, ìdí nìyí tí yíyí bit kan padà fi ń yí ẹ̀yà náà padà. Àwọn ìdéédéé wọ̀nyí kì í ṣe àṣìṣe, wọ́n ṣe wọ́n ní ìmọ̀ kí ìṣètò àti yíyí ẹ̀yà lẹ́tà padà lè ṣe pẹ̀lú ìṣírò tí ó rọrùn.
Ẹ̀wádùúrùn, hexadecimal, àti bíráríri: ojú mẹ́ta ti nọ́mbà kan náà
Kóòdù ASCII kọ̀ọ̀kan jẹ́ nọ́mbà lásán, ìwọ yóò sì rí i tí a kọ ní ọ̀nà mẹ́ta. Ẹ̀wádùúrùn ni fọ́ọ̀mù ìpìlẹ̀-10 ojoojúmọ́, nítorí náà A jẹ́ 65. Hexadecimal, ìpìlẹ̀-16, ni fọ́ọ̀mù tí àwọn olùṣàkọ́sílẹ̀ máa ń lò nítorí pé ó bá byte mu: A jẹ́ 0x41, àgbègbè tí a lè tẹ̀ jáde sì ń jáde láti 0x20 sí 0x7E. Bíráríri, ìpìlẹ̀-2, ni fọ́ọ̀mù tí ohun-èlò gidi ń fi pamọ́, nítorí náà A jẹ́ 1000001 kọjá bit méje rẹ̀. Àmì kan náà, àkọ́sílẹ̀ mẹ́ta, mímọ̀ bí a ṣe ń rìn láàrin wọn dáradára jẹ́ ìmọ̀ pàtàkì nígbà tí o bá ń ka àwọn àkójọ ìrántí tàbí ìṣàn nẹ́tíwọ̀ọ̀kì. Bí o bá ń ṣiṣẹ́ pẹ̀lú àwọn ìyípadà wọ̀nyí lọ́pọ̀ ìgbà, ẹ̀ka tí ó gbòòrò ti àwọn tábìlì ìtọ́kasí lórí speedor.net máa jẹ́ kí àwọn àmì náà wà ní ìtẹ̀ kan péré.

Níbi tí ASCII ṣì ṣe pàtàkì
Yóò jẹ́ àṣìṣe láti fi ASCII sábẹ́ ìtàn. Ó wà láàyè nínú iṣẹ́ ojoojúmọ́ ti ẹnikẹ́ni tí ó bá fọwọ́ kan kóòdù. Àwọn èdè ìṣètò ń wo string literal, àwọn fáìlì orísun, àti àwọn ọ̀rọ̀-ìdarí ìlànà gẹ́gẹ́ bí ASCII ní ìpele byte. Àwọn ìlànà nẹ́tíwọ̀ọ̀kì bí i àwọn orí-ìwé HTTP, SMTP, àti ọ̀pọ̀lọpọ̀ fọ́ọ̀mù ìṣètò ni a ń tọ́ka ní ASCII kí wọ́n lè máa rọrùn láti kà fún ènìyàn. Nígbà tí string kan bá dà bí ẹni pé ó bàjẹ́, àwọn olùṣàkọ́sílẹ̀ máa dé ọ̀dọ̀ olùwo hex kí wọ́n sì ka àwọn byte gidi lòdì sí tábìlì ASCII láti rí àmì ìdarí tí ó yà kúrò tàbí ìparí ìlà tí kò tọ́. URL encoding, Base64, àti àwọn ọ̀wọ̀ ìsálọ̀ (escape sequences) gbogbo rẹ̀ ń kọ́ sórí àwọn iye ASCII. Fún ẹnikẹ́ni tí ó ń ṣàyẹ̀wò àwọn àṣìṣe ìsàmisí, ìtọ́kasí kíákíá lẹ́gbẹ̀ẹ́ àwọn irinṣẹ́ olùṣàkọ́sílẹ̀ rẹ máa yí byte àdììtú padà sí ìdáhùn tí ó ṣe kedere.
Láti ASCII sí Unicode àti UTF-8
ASCII bójútó Gẹ̀ẹ́sì dáradára ṣùgbọ́n kò fẹ́rẹ̀ẹ́ bo ohunkóhun mìíràn. Òkè-ààlà àmì 128 kò lè gba àwọn lẹ́tà tí a fi àmì sí, Cyrillic, Ṣáínà, Arábíà, tàbí emoji. Unicode dáhùn èyí pẹ̀lú fífún àmì kọ̀ọ̀kan nínú gbogbo ètò-ìkọ̀wé ní nọ́mbà tí ó ọ̀tọ̀ọ̀tọ̀, tí a ń pè ní code point, tí ó ti ju ọgọ́rùn-ún ẹgbẹ̀rún lọ báyìí. Ohun pàtàkì ni pé, Unicode jẹ́ àtòjọ àwọn àmì, kì í ṣe fọ́ọ̀mù ìpamọ́, nítorí náà ó nílò ìkóódù láti yí àwọn code point wọ̀nyí padà sí byte.
UTF-8 ni ìkóódù náà, ó sì ni ìdí tí ASCII kò fi lọ ní ti gidi. UTF-8 ń lo byte kan sí mẹ́rin fún àmì kọ̀ọ̀kan, a sì ṣe é kí àwọn code point 0 sí 127, gbogbo àgbègbè ASCII, kí a fi pamọ́ sínú byte kan tí ó jọra pẹ̀lú ASCII lásán. Èyí mú kí UTF-8 bára mu pátápátá pẹ̀lú ẹ̀yìn: fáìlì ASCII tí ó tọ́ jẹ́ fáìlì UTF-8 tí ó tọ́ tẹ́lẹ̀. Àwọn àmì tí ó ju 127 lọ ń lo àwọn byte àfikún. Ìbámu tí ó rọrùn yìí jẹ́ ìdí pàtàkì kan tí ó jẹ́ kí UTF-8 wà lárugẹ ní púpọ̀ jùlọ ojú-òpó ìsìnyí. Ní ọ̀rọ̀ kúkúrú, ASCII ni ìpìlẹ̀ àmì 128 àkọ́kọ́, Unicode ni àtòjọ àgbáyé tí ó ní i, UTF-8 sì ni ìkóódù tí ó ń gbé méjèèjì nígbà tí ó ń pa ọ̀rọ̀ ASCII mọ́ láìyípadà byte-fún-byte.
Àwọn ìbéèrè tí ó wọ́pọ̀
Àwọn àmì mélòó ni ó wà nínú tábìlì ASCII?
ASCII gbogbogbò ń tọ́ka àmì 128, láti 0 sí 127. Nínú àwọn wọ̀nyí, 95 ni àwọn àmì tí a lè tẹ̀ jáde pẹ̀lú ààyè, 33 sì jẹ́ àwọn àmì ìdarí tí ń fi àmì hàn fún ẹ̀rọ dípò kí wọ́n fi àpẹrẹ hàn.
Kín ni ìyàtọ̀ láàrin àwọn àmì ìdarí àti àwọn tí a lè tẹ̀ jáde?
Àwọn àmì ìdarí, kóòdù 0 sí 31 pẹ̀lú 127, ń kọ ẹ̀rọ kan láti ṣe ohun kan bí i line feed tàbí tab, wọ́n kò sì fi àpẹrẹ tí a lè rí hàn. Àwọn àmì tí a lè tẹ̀ jáde, kóòdù 32 sí 126, ni àwọn lẹ́tà, nọ́mbà, àmì ọ̀rọ̀, àti ààyè tí ìwọ máa rí ní ti gidi lórí ìtẹ̀lẹ̀.
Kí ló dé tí ASCII fi jẹ́ kóòdù 7-bit?
Bit méje ń fún ní àkójọpọ̀ 128 gan-an, èyí tí ó tó láti bo àwọn lẹ́tà Gẹ̀ẹ́sì, nọ́mbà, àmì ọ̀rọ̀, àti àwọn àmì ìdarí nígbà tí ó ń fi pamọ́ bandwidth lórí ohun-èlò ìjímìjí tí ó lọ́ra. Bit kẹjọ nínú byte kan sábà máa jẹ́ ohun tí a fi pamọ́ fún àyẹ̀wò àṣìṣe parity.
Kín ni kóòdù ASCII fún lẹ́tà A?
A ńlá jẹ́ ẹ̀wádùúrùn 65, hexadecimal 0x41, àti bíráríri 1000001. A kékeré jẹ́ ẹ̀wádùúrùn 97, èyí tí ó ga ju ú lọ ní 32 gan-an, àwòṣe àdánidá tí ó jẹ́ kí yíyí ẹ̀yà padà lè ṣẹlẹ̀ pẹ̀lú ìṣírò tí ó rọrùn.
Ṣé ASCII jẹ́ ohun kan náà pẹ̀lú Unicode?
Rárá. ASCII ń bo àmì 128, nígbà tí Unicode ń tọ́ka ju ọgọ́rùn-ún ẹgbẹ̀rún lọ kọjá gbogbo ètò-ìkọ̀wé. ASCII jẹ́ ní ti gidi àwọn code point 128 àkọ́kọ́ ti Unicode, nítorí náà ó jẹ́ ẹ̀ka kékeré nínú ìdíwọ̀n tí ó tóbi jù.
Báwo ni UTF-8 ṣe ní í ṣe pẹ̀lú ASCII?
UTF-8 jẹ́ ìkóódù fún Unicode tí ó ń fi àwọn code point 0 sí 127 pamọ́ sínú byte kan tí ó jọra pẹ̀lú ASCII. Èyí mú kí gbogbo fáìlì ASCII jẹ́ fáìlì UTF-8 tí ó tọ́, ìdí nìyí tí UTF-8 fi bára mu pẹ̀lú ẹ̀yìn tí ó sì ń darí ojú-òpó ìsìnyí.
