Pengekodan Ascii. Pengekodan ASCII (kod standard Amerika untuk pertukaran maklumat) - pengekodan teks asas untuk abjad Latin

Menurut Kesatuan Telekomunikasi Antarabangsa, pada 2016, tiga setengah bilion orang menggunakan Internet dengan kerap. Kebanyakan mereka tidak memikirkan hakikat bahawa sebarang mesej yang mereka hantar melalui PC atau alat mudah alih, serta teks yang dipaparkan pada semua jenis monitor, sebenarnya adalah gabungan 0 dan 1. Perwakilan maklumat ini dipanggil pengekodan . Ia memastikan dan memudahkan penyimpanan, pemprosesan dan penghantarannya. Pada tahun 1963, pengekodan ASCII Amerika telah dibangunkan, yang menjadi subjek artikel ini.

Mempersembahkan maklumat pada komputer

Dari sudut pandangan mana-mana komputer elektronik, teks ialah satu set aksara individu. Ini termasuk bukan sahaja huruf, termasuk huruf besar, tetapi juga tanda baca dan nombor. Selain itu, aksara khas “=”, “&”, “(” dan ruang digunakan.

Set aksara yang membentuk teks dipanggil abjad, dan nombornya dipanggil kardinaliti (ditandakan sebagai N). Untuk menentukannya, ungkapan N = 2^b digunakan, dengan b ialah bilangan bit atau berat maklumat bagi simbol tertentu.

Telah terbukti bahawa abjad dengan kapasiti 256 aksara boleh mewakili semua aksara yang diperlukan.

Oleh kerana 256 mewakili kuasa ke-8 daripada dua, berat setiap aksara ialah 8 bit.

Satu unit ukuran 8 bit dipanggil 1 bait, jadi adalah kebiasaan untuk mengatakan bahawa mana-mana aksara dalam teks yang disimpan pada komputer mengambil satu bait memori.

Bagaimanakah pengekodan dilakukan?

Sebarang teks dimasukkan ke dalam ingatan komputer peribadi menggunakan kekunci papan kekunci di mana nombor, huruf, tanda baca dan simbol lain ditulis. Mereka dipindahkan ke RAM dalam kod binari, iaitu setiap aksara dikaitkan dengan kod perpuluhan yang biasa kepada manusia, dari 0 hingga 255, yang sepadan dengan kod binari - dari 00000000 hingga 11111111.

Pengekodan aksara bait-bait membenarkan pemproses yang menjalankan pemprosesan teks untuk mengakses setiap aksara secara individu. Pada masa yang sama, 256 aksara sudah cukup untuk mewakili sebarang maklumat simbolik.

Pengekodan aksara ASCII

Singkatan dalam bahasa Inggeris ini bermaksud kod untuk pertukaran maklumat.

Walaupun pada awal pengkomputeran, ia menjadi jelas bahawa adalah mungkin untuk menghasilkan pelbagai cara untuk mengekod maklumat. Walau bagaimanapun, untuk memindahkan maklumat dari satu komputer ke komputer lain, adalah perlu untuk membangunkan standard bersatu. Jadi, pada tahun 1963, jadual pengekodan ASCII muncul di Amerika Syarikat. Di dalamnya, sebarang simbol abjad komputer dikaitkan dengan nombor sirinya dalam perwakilan binari. ASCII pada asalnya hanya digunakan di Amerika Syarikat dan kemudiannya menjadi standard antarabangsa untuk PC.

Kod ASCII terbahagi kepada 2 bahagian. Hanya separuh pertama jadual ini dianggap sebagai standard antarabangsa. Ia termasuk aksara dengan nombor bersiri daripada 0 (berkod sebagai 00000000) hingga 127 (berkod 01111111).

Nombor siri

Pengekodan teks ASCII

Simbol

0000 0000 - 0001 1111

Aksara dengan N dari 0 hingga 31 dipanggil aksara kawalan. Fungsi mereka adalah untuk "mengurus" proses memaparkan teks pada monitor atau peranti pencetak, memberikan isyarat bunyi, dsb.

0010 0000 - 0111 1111

Aksara dari N dari 32 hingga 127 (bahagian standard jadual) - huruf besar dan huruf kecil abjad Latin, angka ke-10, tanda baca, serta pelbagai kurungan, simbol komersial dan lain-lain. Watak 32 mewakili ruang.

1000 0000 - 1111 1111

Aksara dengan N daripada 128 hingga 255 (bahagian alternatif jadual atau halaman kod) boleh mempunyai varian yang berbeza, setiap satunya mempunyai nombor sendiri. Halaman kod digunakan untuk menentukan abjad kebangsaan yang berbeza daripada Latin. Khususnya, dengan bantuannya pengekodan ASCII untuk aksara Rusia dijalankan.

Dalam jadual, pengekodan menggunakan huruf besar dan mengikut satu sama lain dalam susunan abjad, dan nombor adalah dalam susunan menaik. Prinsip ini tetap sama untuk abjad Rusia.

Kawal aksara

Jadual pengekodan ASCII pada asalnya dicipta untuk menerima dan menghantar maklumat melalui peranti yang tidak digunakan untuk masa yang lama, seperti teletaip. Dalam hal ini, aksara tidak boleh dicetak telah dimasukkan ke dalam set aksara, digunakan sebagai arahan untuk mengawal peranti ini. Arahan serupa digunakan dalam kaedah pemesejan pra-komputer seperti kod Morse, dsb.

Watak teletaip yang paling biasa ialah NUL (00). Ia masih digunakan hari ini dalam kebanyakan bahasa pengaturcaraan untuk menunjukkan penghujung baris.

Di manakah pengekodan ASCII digunakan?

Kod Standard Amerika diperlukan bukan sahaja untuk memasukkan maklumat teks pada papan kekunci. Ia juga digunakan dalam grafik. Khususnya, dalam ASCII Art Maker, imej pelbagai sambungan mewakili spektrum aksara ASCII.

Terdapat dua jenis produk tersebut: produk yang melaksanakan fungsi penyunting grafik dengan menukar imej kepada teks dan yang menukar "lukisan" kepada grafik ASCII. Contohnya, emotikon yang terkenal ialah contoh utama bagi simbol pengekodan.

ASCII juga boleh digunakan semasa membuat dokumen HTML. Dalam kes ini, anda boleh memasukkan set aksara tertentu, dan apabila melihat halaman, simbol yang sepadan dengan kod ini akan muncul pada skrin.

ASCII juga diperlukan untuk mencipta tapak web berbilang bahasa, kerana aksara yang tidak disertakan dalam jadual kebangsaan tertentu digantikan dengan kod ASCII.

Beberapa ciri

ASCII pada asalnya digunakan untuk mengekod maklumat teks menggunakan 7 bit (satu dibiarkan kosong), tetapi hari ini ia berfungsi sebagai 8 bit.

Huruf yang terletak dalam lajur yang terletak di atas dan di bawah berbeza antara satu sama lain dalam hanya satu bit. Ini mengurangkan kerumitan audit dengan ketara.

Menggunakan ASCII dalam Microsoft Office

Jika perlu, pengekodan maklumat teks jenis ini boleh digunakan dalam penyunting teks Microsoft seperti Notepad dan Office Word. Walau bagaimanapun, anda mungkin tidak dapat menggunakan beberapa fungsi semasa menaip dalam kes ini. Sebagai contoh, anda tidak akan dapat menggunakan teks tebal kerana pengekodan ASCII hanya mengekalkan makna maklumat, mengabaikan rupa dan bentuk amnya.

Penyeragaman

Organisasi ISO telah menerima pakai piawaian ISO 8859. Kumpulan ini mentakrifkan pengekodan lapan bit untuk kumpulan bahasa yang berbeza. Khususnya, ISO 8859-1 ialah jadual ASCII Lanjutan untuk Amerika Syarikat dan negara Eropah Barat. Dan ISO 8859-5 ialah jadual yang digunakan untuk abjad Cyrillic, termasuk bahasa Rusia.

Untuk beberapa sebab sejarah, piawaian ISO 8859-5 telah digunakan untuk masa yang sangat singkat.

Untuk bahasa Rusia, pengekodan berikut sebenarnya digunakan pada masa ini:

  • CP866 (Kod Halaman 866) atau DOS, yang sering dipanggil pengekodan GOST alternatif. Ia digunakan secara aktif sehingga pertengahan 90-an abad yang lalu. Pada masa ini ia boleh dikatakan tidak digunakan.
  • KOI-8. Pengekodan telah dibangunkan pada tahun 1970-an dan 80-an, dan kini merupakan piawaian yang diterima umum untuk mesej e-mel di RuNet. Ia digunakan secara meluas dalam sistem pengendalian Unix, termasuk Linux. Versi "Rusia" KOI-8 dipanggil KOI-8R. Di samping itu, terdapat versi untuk bahasa Cyrillic lain, seperti Bahasa Ukraine.
  • Kod Halaman 1251 (CP 1251, Windows - 1251). Dibangunkan oleh Microsoft untuk menyediakan sokongan untuk bahasa Rusia dalam persekitaran Windows.

Kelebihan utama piawaian CP866 pertama ialah pengekalan aksara pseudografik dalam kedudukan yang sama seperti dalam ASCII Lanjutan. Ini memungkinkan untuk menjalankan program teks buatan asing, seperti Norton Commander yang terkenal, tanpa pengubahsuaian. Pada masa ini, CP866 digunakan untuk program yang dibangunkan untuk Windows yang berjalan dalam mod teks skrin penuh atau dalam tetingkap teks, termasuk FAR Manager.

Teks komputer yang ditulis dalam pengekodan CP866 agak jarang berlaku pada hari ini, tetapi ia adalah teks yang digunakan untuk nama fail Rusia dalam Windows.

"Unicode"

Pada masa ini, pengekodan ini adalah yang paling banyak digunakan. Kod Unicode dibahagikan kepada kawasan. Yang pertama (U+0000 hingga U+007F) termasuk aksara ASCII dengan kod. Ini diikuti dengan kawasan watak pelbagai skrip kebangsaan, serta tanda baca dan simbol teknikal. Selain itu, beberapa kod Unicode dikhaskan sekiranya terdapat keperluan untuk memasukkan aksara baharu pada masa hadapan.

Sekarang anda tahu bahawa dalam ASCII, setiap aksara diwakili sebagai gabungan 8 sifar dan satu. Kepada bukan pakar, maklumat ini mungkin kelihatan tidak perlu dan tidak menarik, tetapi tidakkah anda ingin tahu apa yang berlaku "dalam otak" PC anda?!

Salam, pembaca laman blog yang dihormati. Hari ini kami akan bercakap dengan anda tentang dari mana krakozyabrs berasal di laman web dan dalam program, apakah pengekodan teks yang wujud dan yang mana yang harus digunakan. Mari kita lihat dengan lebih dekat sejarah pembangunan mereka, bermula daripada ASCII asas, serta versi lanjutannya CP866, KOI8-R, Windows 1251 dan berakhir dengan pengekodan konsortium Unicode moden UTF 16 dan 8.

Bagi sesetengah orang, maklumat ini mungkin kelihatan tidak perlu, tetapi adakah anda tahu berapa banyak soalan yang saya terima secara khusus mengenai krakozyabrs yang merangkak (set aksara yang tidak boleh dibaca). Sekarang saya akan mempunyai peluang untuk merujuk semua orang kepada teks artikel ini dan mencari kesilapan saya sendiri. Baiklah, bersedia untuk menyerap maklumat dan cuba mengikuti aliran cerita.

ASCII - pengekodan teks asas untuk abjad Latin

Perkembangan pengekodan teks berlaku serentak dengan pembentukan industri IT, dan pada masa ini mereka berjaya mengalami banyak perubahan. Dari segi sejarah, semuanya bermula dengan EBCDIC, yang agak sumbang dalam sebutan Rusia, yang memungkinkan untuk mengekod huruf abjad Latin, angka Arab dan tanda baca dengan aksara kawalan.

Namun begitu, titik permulaan untuk pembangunan pengekodan teks moden harus dianggap yang terkenal ASCII(Kod Standard Amerika untuk Pertukaran Maklumat, yang dalam bahasa Rusia biasanya disebut sebagai "aski"). Ia menerangkan 128 aksara pertama yang paling biasa digunakan oleh pengguna berbahasa Inggeris - huruf Latin, angka Arab dan tanda baca.

128 aksara yang diterangkan dalam ASCII ini juga termasuk beberapa aksara perkhidmatan seperti kurungan, tanda cincang, asterisk, dsb. Malah, anda boleh melihatnya sendiri:

128 aksara daripada versi asal ASCII inilah yang telah menjadi standard, dan dalam mana-mana pengekodan lain anda pasti akan menemuinya dan ia akan muncul dalam susunan ini.

Tetapi hakikatnya ialah dengan satu bait maklumat anda boleh mengekod bukan 128, tetapi sebanyak 256 nilai yang berbeza (dua kepada kuasa lapan sama dengan 256), jadi selepas versi asas Asuka satu siri keseluruhan pengekodan ASCII lanjutan, di mana, sebagai tambahan kepada 128 aksara asas, ia juga mungkin untuk mengekod simbol pengekodan kebangsaan (contohnya, Rusia).

Di sini, ia mungkin berbaloi untuk menyatakan lebih banyak tentang sistem nombor yang digunakan dalam penerangan. Pertama, seperti yang anda semua tahu, komputer hanya berfungsi dengan nombor dalam sistem binari, iaitu dengan sifar dan satu (“algebra Boolean”, jika sesiapa mengambilnya di institut atau sekolah). , setiap satunya adalah dua kepada kuasa, bermula dari sifar, dan sehingga dua hingga ketujuh:

Tidak sukar untuk memahami bahawa semua kemungkinan gabungan sifar dan satu dalam reka bentuk sedemikian hanya boleh 256. Menukar nombor daripada sistem binari kepada sistem perpuluhan adalah agak mudah. Anda hanya perlu menambah semua kuasa dua dengan kuasa di atasnya.

Dalam contoh kami, ini ternyata menjadi 1 (2 kepada kuasa sifar) ditambah 8 (dua kepada kuasa 3), ditambah 32 (dua kepada kuasa kelima), ditambah 64 (kepada kuasa keenam), ditambah 128 (kepada kuasa ketujuh). Jumlahnya ialah 233 dalam tatatanda perpuluhan. Seperti yang anda lihat, semuanya sangat mudah.

Tetapi jika anda melihat dengan teliti jadual dengan aksara ASCII, anda akan melihat bahawa ia diwakili dalam pengekodan heksadesimal. Sebagai contoh, "asterisk" sepadan dengan nombor perenambelasan 2A dalam Aski. Anda mungkin tahu bahawa dalam sistem nombor perenambelasan, sebagai tambahan kepada angka Arab, huruf Latin dari A (bermakna sepuluh) hingga F (bermakna lima belas) juga digunakan.

Baiklah, untuk menukar nombor binari kepada perenambelasan menggunakan kaedah yang mudah dan jelas berikut. Setiap bait maklumat dibahagikan kepada dua bahagian empat bit, seperti yang ditunjukkan dalam tangkapan skrin di atas. Itu. Dalam setiap separuh bait, hanya enam belas nilai (dua hingga kuasa keempat) boleh dikodkan dalam binari, yang boleh dengan mudah diwakili sebagai nombor perenambelasan.

Selain itu, di separuh kiri bait darjah perlu dikira semula bermula dari sifar, dan bukan seperti yang ditunjukkan dalam tangkapan skrin. Akibatnya, melalui pengiraan mudah, kami mendapat bahawa nombor E9 dikodkan dalam tangkapan skrin. Saya berharap perjalanan pemikiran saya dan penyelesaian teka-teki ini jelas kepada anda. Nah, sekarang mari kita teruskan, sebenarnya, bercakap tentang pengekodan teks.

Versi lanjutan Asuka - pengekodan CP866 dan KOI8-R dengan pseudografik

Jadi, kami mula bercakap tentang ASCII, yang, seolah-olah, titik permulaan untuk pembangunan semua pengekodan moden (Windows 1251, Unicode, UTF 8).

Pada mulanya, ia mengandungi hanya 128 aksara abjad Latin, angka Arab dan sesuatu yang lain, tetapi dalam versi lanjutan ia menjadi mungkin untuk menggunakan semua 256 nilai yang boleh dikodkan dalam satu bait maklumat. Itu. Anda boleh menambah simbol huruf dalam bahasa anda pada Aski.

Di sini kita perlu menyimpang sekali lagi untuk menjelaskan - mengapa kita memerlukan pengekodan sama sekali? teks dan mengapa ia begitu penting. Aksara pada skrin komputer anda dibentuk berdasarkan dua perkara - set bentuk vektor (perwakilan) pelbagai aksara (ia terletak dalam fail dengan ) dan kod yang membolehkan anda menarik keluar dari set bentuk vektor ini (fail fon ) betul-betul watak yang perlu dimasukkan ke dalam tempat yang betul.

Adalah jelas bahawa fon itu sendiri bertanggungjawab untuk bentuk vektor, tetapi sistem pengendalian dan program yang digunakan di dalamnya bertanggungjawab untuk pengekodan. Itu. sebarang teks pada komputer anda akan menjadi satu set bait, setiap satunya mengekod satu aksara tunggal teks ini.

Program yang memaparkan teks ini pada skrin (editor teks, penyemak imbas, dll.), apabila menghuraikan kod, membaca pengekodan aksara seterusnya dan mencari bentuk vektor yang sepadan dalam fail fon yang diperlukan, yang disambungkan untuk memaparkan ini dokumen teks. Semuanya mudah dan cetek.

Ini bermakna untuk mengekod mana-mana aksara yang kita perlukan (contohnya, daripada abjad kebangsaan), dua syarat mesti dipenuhi - bentuk vektor aksara ini mestilah dalam fon yang digunakan dan aksara ini boleh dikodkan dalam pengekodan ASCII lanjutan dalam satu bait. Oleh itu, terdapat sejumlah besar pilihan sedemikian. Hanya untuk pengekodan aksara bahasa Rusia, terdapat beberapa jenis Aska lanjutan.

Sebagai contoh, pada asalnya muncul CP866, yang mempunyai keupayaan untuk menggunakan aksara daripada abjad Rusia dan merupakan versi lanjutan ASCII.

Itu. bahagian atasnya sepenuhnya bertepatan dengan versi asas Aska (128 aksara Latin, nombor dan omong kosong lain), yang ditunjukkan dalam tangkapan skrin tepat di atas, tetapi bahagian bawah jadual dengan pengekodan CP866 mempunyai rupa yang ditunjukkan dalam tangkapan skrin tepat di bawah dan membenarkan anda mengekod 128 tanda lagi (huruf Rusia dan semua jenis pseudografik):

Anda lihat, di lajur kanan nombor bermula dengan 8, kerana... nombor dari 0 hingga 7 merujuk kepada bahagian asas ASCII (lihat tangkapan skrin pertama). Itu. Huruf Rusia "M" dalam CP866 akan mempunyai kod 9C (ia terletak di persimpangan baris yang sepadan dengan 9 dan lajur dengan nombor C dalam sistem nombor heksadesimal), yang boleh ditulis dalam satu bait maklumat, dan jika terdapat fon yang sesuai dengan aksara Rusia, surat tanpa masalah ini akan muncul dalam teks.

Dari mana datangnya jumlah ini? pseudografik dalam CP866? Intinya ialah pengekodan untuk teks Rusia ini telah dibangunkan kembali pada tahun-tahun kelam apabila sistem pengendalian grafik tidak begitu meluas seperti sekarang. Dan dalam Dosa dan sistem pengendalian teks yang serupa, pseudografi membolehkan sekurang-kurangnya entah bagaimana mempelbagaikan reka bentuk teks, dan oleh itu CP866 dan semua rakannya yang lain daripada kategori versi lanjutan Asuka banyak terdapat di dalamnya.

CP866 diedarkan oleh IBM, tetapi sebagai tambahan kepada ini, beberapa pengekodan telah dibangunkan untuk aksara bahasa Rusia, contohnya, jenis yang sama (ASCII lanjutan) boleh dikaitkan KOI8-R:

Prinsip operasinya tetap sama seperti CP866 yang diterangkan sedikit lebih awal - setiap aksara teks dikodkan oleh satu bait tunggal. Tangkapan skrin menunjukkan separuh kedua jadual KOI8-R, kerana separuh masa pertama benar-benar konsisten dengan Asuka asas, yang ditunjukkan dalam tangkapan skrin pertama dalam artikel ini.

Antara ciri pengekodan KOI8-R, dapat diperhatikan bahawa huruf Rusia dalam jadualnya tidak dalam susunan abjad, seperti, sebagai contoh, mereka melakukannya dalam CP866.

Jika anda melihat tangkapan skrin pertama (bahagian asas, yang disertakan dalam semua pengekodan lanjutan), anda akan melihat bahawa dalam KOI8-R huruf Rusia terletak dalam sel yang sama dalam jadual dengan huruf yang sepadan dalam abjad Latin dari bahagian pertama jadual. Ini dilakukan untuk kemudahan menukar daripada aksara Rusia ke Latin dengan membuang hanya satu bit (dua kepada kuasa ketujuh atau 128).

Windows 1251 - versi moden ASCII dan sebab retakan itu keluar

Perkembangan selanjutnya pengekodan teks adalah disebabkan oleh fakta bahawa sistem pengendalian grafik semakin popular dan keperluan untuk menggunakan pseudografik di dalamnya hilang dari semasa ke semasa. Akibatnya, seluruh kumpulan timbul bahawa, pada dasarnya, masih merupakan versi lanjutan Asuka (satu aksara teks dikodkan dengan hanya satu bait maklumat), tetapi tanpa menggunakan simbol pseudografik.

Ia tergolong dalam pengekodan ANSI yang dipanggil, yang dibangunkan oleh American Standards Institute. Dalam bahasa biasa, nama Cyrillic juga digunakan untuk versi dengan sokongan bahasa Rusia. Contohnya ialah.

Ia berbeza dengan baik daripada CP866 dan KOI8-R yang digunakan sebelum ini kerana tempat simbol pseudografik di dalamnya diambil oleh simbol tipografi Rusia yang hilang (kecuali tanda aksen), serta simbol yang digunakan dalam bahasa Slavik berhampiran dengan Rusia (Ukraine, Belarus, dll.). ):

Oleh kerana pengekodan bahasa Rusia yang begitu banyak, pengeluar fon dan pengeluar perisian sentiasa mengalami sakit kepala, dan anda dan saya, pembaca yang dikasihi, sering mendapat yang sama terkenal. krakozyabry apabila terdapat kekeliruan dengan versi yang digunakan dalam teks.

Selalunya mereka keluar apabila menghantar dan menerima mesej melalui e-mel, yang memerlukan penciptaan jadual penukaran yang sangat kompleks, yang, sebenarnya, tidak dapat menyelesaikan masalah ini secara asas, dan pengguna sering menggunakan surat-menyurat untuk mengelakkan gimik yang terkenal apabila menggunakan Pengekodan Rusia seperti CP866, KOI8-R atau Windows 1251.

Sebenarnya, retakan yang muncul dan bukannya teks Rusia adalah hasil daripada penggunaan pengekodan bahasa ini yang salah, yang tidak sepadan dengan yang dikodkan pada asalnya mesej teks.

Katakan bahawa jika anda cuba memaparkan aksara yang dikodkan menggunakan CP866 menggunakan jadual kod Windows 1251, maka omong kosong yang sama ini (set aksara yang tidak bermakna) akan keluar, menggantikan teks mesej sepenuhnya.

Situasi yang sama selalunya timbul di forum atau blog, apabila teks dengan aksara Rusia tersilap disimpan dalam pengekodan yang salah yang digunakan di tapak secara lalai, atau dalam penyunting teks yang salah, yang menambah gag pada kod yang tidak kelihatan kepada mata kasar.

Pada akhirnya, ramai orang bosan dengan keadaan ini dengan banyak pengekodan dan sentiasa menjalar keluar omong kosong, dan prasyarat muncul untuk penciptaan variasi universal baharu yang akan menggantikan semua yang sedia ada dan akhirnya akan menyelesaikan masalah dengan penampilan. daripada teks yang tidak boleh dibaca. Di samping itu, terdapat masalah bahasa seperti bahasa Cina, di mana terdapat lebih banyak aksara bahasa daripada 256.

Unicode - pengekodan universal UTF 8, 16 dan 32

Beribu-ribu aksara kumpulan bahasa Asia Tenggara ini tidak mungkin dapat diterangkan dalam satu bait maklumat yang diperuntukkan untuk pengekodan aksara dalam versi lanjutan ASCII. Akibatnya, konsortium telah diwujudkan dipanggil Unicode(Unicode - Unicode Consortium) dengan kerjasama ramai pemimpin industri IT (mereka yang menghasilkan perisian, yang mengekod perkakasan, yang mencipta fon), yang berminat dengan kemunculan pengekodan teks universal.

Variasi pertama yang dikeluarkan di bawah naungan Unicode Consortium ialah UTF 32. Nombor dalam nama pengekodan bermaksud bilangan bit yang digunakan untuk mengekod satu aksara. 32 bit sama dengan 4 bait maklumat yang diperlukan untuk mengekod satu aksara tunggal dalam pengekodan UTF universal baharu.

Akibatnya, fail yang sama dengan teks yang dikodkan dalam versi lanjutan ASCII dan dalam UTF-32, dalam kes kedua, akan mempunyai saiz (berat) empat kali lebih besar. Ini buruk, tetapi kini kita mempunyai peluang untuk mengekod menggunakan YTF sejumlah aksara bersamaan dengan dua hingga kuasa tiga puluh saat ( berbilion watak, yang akan meliputi sebarang nilai yang benar-benar diperlukan dengan margin yang sangat besar).

Tetapi banyak negara dengan bahasa kumpulan Eropah tidak perlu menggunakan sejumlah besar aksara dalam pengekodan sama sekali, bagaimanapun, apabila menggunakan UTF-32, mereka tanpa sebab menerima peningkatan empat kali ganda dalam berat dokumen teks, dan akibatnya, peningkatan dalam jumlah trafik Internet dan volum data yang disimpan. Ini adalah banyak, dan tiada siapa yang mampu membayar pembaziran sedemikian.

Hasil daripada pembangunan Unicode, UTF-16, yang ternyata sangat berjaya sehingga ia telah diterima pakai secara lalai sebagai ruang asas untuk semua aksara yang kami gunakan. Ia menggunakan dua bait untuk mengekod satu aksara. Mari kita lihat bagaimana perkara ini kelihatan.

Dalam sistem pengendalian Windows, anda boleh mengikuti laluan "Mula" - "Program" - "Aksesori" - "Alat Sistem" - "Jadual Aksara". Akibatnya, jadual akan dibuka dengan bentuk vektor semua fon yang dipasang pada sistem anda. Jika anda memilih set aksara Unicode dalam "Pilihan lanjutan", anda akan dapat melihat untuk setiap fon secara berasingan keseluruhan julat aksara yang disertakan di dalamnya.

Dengan cara ini, dengan mengklik mana-mana daripadanya, anda boleh melihat dua baitnya kod dalam format UTF-16, yang terdiri daripada empat digit heksadesimal:

Berapakah bilangan aksara yang boleh dikodkan dalam UTF-16 menggunakan 16 bit? 65,536 (dua kepada kuasa enam belas), dan ini ialah nombor yang diterima pakai sebagai ruang asas dalam Unicode. Di samping itu, terdapat cara untuk mengekod kira-kira dua juta aksara menggunakannya, tetapi ia terhad kepada ruang yang diperluaskan dengan sejuta aksara teks.

Tetapi versi pengekodan Unicode yang berjaya ini tidak membawa banyak kepuasan kepada mereka yang menulis, katakan, program hanya dalam bahasa Inggeris, kerana bagi mereka, selepas peralihan dari versi lanjutan ASCII ke UTF-16, berat dokumen meningkat dua kali ganda ( satu bait setiap aksara dalam Aski dan dua bait untuk aksara yang sama dalam YUTF-16).

Ia adalah tepat untuk memuaskan hati semua orang dan segala-galanya dalam konsortium Unicode yang diputuskan untuk dibuat pengekodan panjang berubah-ubah. Ia dipanggil UTF-8. Walaupun lapan dalam nama, ia sebenarnya mempunyai panjang berubah-ubah, i.e. Setiap aksara teks boleh dikodkan ke dalam urutan satu hingga enam bait panjangnya.

Dalam praktiknya, UTF-8 hanya menggunakan julat dari satu hingga empat bait, kerana melebihi empat bait kod ia tidak lagi secara teori mungkin membayangkan apa-apa. Semua aksara Latin di dalamnya dikodkan menjadi satu bait, sama seperti dalam ASCII lama yang baik.

Apa yang patut diberi perhatian ialah dalam kes pengekodan hanya abjad Latin, malah program yang tidak memahami Unicode masih akan membaca apa yang dikodkan dalam YTF-8. Itu. bahagian teras Asuka hanya dipindahkan ke penciptaan konsortium Unicode ini.

Aksara Cyrillic dalam UTF-8 dikodkan dalam dua bait, dan, sebagai contoh, aksara Georgia dikodkan dalam tiga bait. Konsortium Unicode, selepas mencipta UTF 16 dan 8, menyelesaikan masalah utama - kini kami ada fon mempunyai ruang kod tunggal. Dan kini pengeluar mereka hanya boleh mengisinya dengan bentuk vektor aksara teks berdasarkan kekuatan dan keupayaan mereka. Sekarang mereka juga datang dalam set.

Dalam "Jadual Aksara" di atas anda boleh melihat bahawa fon berbeza menyokong bilangan aksara yang berbeza. Sesetengah fon kaya Unicode boleh menjadi agak berat. Tetapi kini mereka berbeza bukan pada hakikat bahawa ia dicipta untuk pengekodan yang berbeza, tetapi pada hakikat bahawa pengeluar fon telah mengisi atau tidak sepenuhnya mengisi ruang kod tunggal dengan bentuk vektor tertentu.

Perkataan gila dan bukannya huruf Rusia - bagaimana untuk membetulkannya

Sekarang mari kita lihat bagaimana krakozyabrs muncul dan bukannya teks atau, dengan kata lain, cara pengekodan yang betul untuk teks Rusia dipilih. Sebenarnya, ia ditetapkan dalam program di mana anda mencipta atau mengedit teks ini, atau kod menggunakan serpihan teks.

Untuk mengedit dan membuat fail teks, saya secara peribadi menggunakan yang sangat baik, pada pendapat saya, . Walau bagaimanapun, ia boleh menyerlahkan sintaks beratus-ratus bahasa pengaturcaraan dan penanda lain, dan juga mempunyai keupayaan untuk dilanjutkan menggunakan pemalam. Baca ulasan terperinci program hebat ini di pautan yang disediakan.

Dalam menu atas Notepad++ terdapat item "Pengekodan", di mana anda akan mempunyai peluang untuk menukar pilihan sedia ada kepada pilihan yang digunakan secara lalai di tapak anda:

Dalam kes tapak di Joomla 1.5 dan lebih tinggi, serta dalam kes blog di WordPress, anda harus memilih pilihan untuk mengelakkan penampilan retak UTF 8 tanpa BOM. Apakah awalan BOM?

Hakikatnya ialah apabila mereka membangunkan pengekodan YUTF-16, atas sebab tertentu mereka memutuskan untuk melampirkan padanya perkara seperti keupayaan untuk menulis kod aksara kedua-duanya dalam urutan langsung (contohnya, 0A15) dan sebaliknya (150A) . Dan untuk program memahami dengan tepat dalam urutan apa untuk membaca kod, ia dicipta BOM(Tanda Pesanan Byte atau, dengan kata lain, tandatangan), yang dinyatakan dalam menambah tiga bait tambahan pada permulaan dokumen.

Dalam pengekodan UTF-8, tiada BOM disediakan dalam konsortium Unicode, dan oleh itu menambah tandatangan (tiga bait tambahan yang terkenal pada permulaan dokumen) hanya menghalang beberapa program daripada membaca kod. Oleh itu, apabila menyimpan fail dalam UTF, kita mesti sentiasa memilih pilihan tanpa BOM (tanpa tandatangan). Jadi anda lebih awal melindungi diri anda daripada merangkak krakozyabrs.

Apa yang patut diberi perhatian ialah sesetengah program dalam Windows tidak boleh melakukan ini (mereka tidak boleh menyimpan teks dalam UTF-8 tanpa BOM), sebagai contoh, Windows Notepad yang sama terkenal. Ia menyimpan dokumen dalam UTF-8, tetapi masih menambah tandatangan (tiga bait tambahan) pada permulaannya. Selain itu, bait ini akan sentiasa sama - baca kod dalam urutan langsung. Tetapi pada pelayan, kerana perkara kecil ini, masalah boleh timbul - penyangak akan keluar.

Oleh itu, dalam apa jua keadaan Jangan gunakan notepad Windows biasa untuk mengedit dokumen di tapak anda jika anda tidak mahu sebarang retakan muncul. Saya menganggap editor Notepad++ yang telah disebutkan sebagai pilihan terbaik dan paling mudah, yang hampir tidak mempunyai kelemahan dan hanya terdiri daripada kelebihan.

Dalam Notepad++, apabila anda memilih pengekodan, anda akan mempunyai pilihan untuk menukar teks kepada pengekodan UCS-2, yang sangat hampir dengan standard Unicode. Juga dalam Notepad adalah mungkin untuk mengekod teks dalam ANSI, i.e. berhubung dengan bahasa Rusia, ini ialah Windows 1251, yang telah kami jelaskan di atas. Dari manakah maklumat ini datang?

Ia didaftarkan dalam pendaftaran sistem pengendalian Windows anda - pengekodan yang perlu dipilih dalam kes ANSI, yang perlu dipilih dalam kes OEM (untuk bahasa Rusia ia akan menjadi CP866). Jika anda memasang bahasa lalai lain pada komputer anda, maka pengekodan ini akan digantikan dengan yang serupa daripada kategori ANSI atau OEM untuk bahasa yang sama itu.

Selepas anda menyimpan dokumen dalam Notepad++ dalam pengekodan yang anda perlukan atau membuka dokumen dari tapak untuk mengedit, anda boleh melihat namanya di sudut kanan bawah editor:

Untuk mengelakkan redneck Sebagai tambahan kepada tindakan yang diterangkan di atas, adalah berguna untuk menulis maklumat tentang pengekodan ini dalam pengepala kod sumber semua halaman tapak supaya tiada kekeliruan pada pelayan atau hos tempatan.

Secara umum, semua bahasa penanda hiperteks kecuali Html menggunakan pengisytiharan xml khas, yang menentukan pengekodan teks.

Sebelum menghuraikan kod, penyemak imbas mengetahui versi mana yang sedang digunakan dan bagaimana sebenarnya ia perlu mentafsir kod aksara bahasa tersebut. Tetapi apa yang patut diberi perhatian ialah jika anda menyimpan dokumen dalam Unicode lalai, maka pengisytiharan xml ini boleh ditinggalkan (pengekodan akan dianggap UTF-8 jika tiada BOM atau UTF-16 jika terdapat BOM).

Dalam kes dokumen bahasa Html, pengekodan digunakan untuk menunjukkan Unsur meta, yang ditulis antara teg Ketua pembukaan dan penutup:

... ...

Entri ini agak berbeza daripada yang diterima pakai, tetapi mematuhi sepenuhnya piawaian Html 5 baharu yang perlahan-lahan diperkenalkan, dan ia akan difahami sepenuhnya dengan betul oleh mana-mana penyemak imbas yang sedang digunakan.

Secara teori, adalah lebih baik untuk meletakkan elemen Meta yang menunjukkan pengekodan dokumen Html setinggi mungkin dalam pengepala dokumen supaya pada masa menemui aksara pertama dalam teks bukan dari ANSI asas (yang sentiasa dibaca dengan betul dan dalam sebarang variasi), penyemak imbas sepatutnya sudah mempunyai maklumat tentang cara mentafsir kod aksara ini.

Semoga berjaya! Jumpa anda tidak lama lagi di halaman laman blog

Anda boleh menonton lebih banyak video dengan pergi ke
");">

Anda mungkin berminat

Apakah alamat URL, bagaimanakah pautan mutlak dan relatif untuk tapak berbeza?
OpenServer - pelayan tempatan moden dan contoh cara menggunakannya untuk memasang WordPress pada komputer
Apakah Chmod, apakah kebenaran untuk diberikan kepada fail dan folder (777, 755, 666) dan bagaimana untuk melakukannya melalui PHP
Carian Yandex mengikut tapak dan kedai dalam talian

Komputer memahami proses menukarnya kepada bentuk yang membolehkan penghantaran, penyimpanan atau pemprosesan automatik data ini lebih mudah. Pelbagai jadual digunakan untuk tujuan ini. ASCII adalah sistem pertama yang dibangunkan di Amerika Syarikat untuk bekerja dengan teks bahasa Inggeris, yang kemudiannya tersebar luas di seluruh dunia. Artikel di bawah dikhaskan untuk penerangan, ciri, sifat dan penggunaan selanjutnya.

Memaparkan dan menyimpan maklumat dalam komputer

Simbol pada monitor komputer atau satu atau alat digital mudah alih yang lain dibentuk berdasarkan set bentuk vektor pelbagai aksara dan kod yang membolehkan anda mencari di antaranya simbol yang perlu dimasukkan di tempat yang betul. Ia mewakili urutan bit. Oleh itu, setiap aksara mestilah sepadan secara unik dengan set sifar dan satu, yang muncul dalam susunan unik tertentu.

Bagaimana semuanya bermula

Dari segi sejarah, komputer pertama adalah berbahasa Inggeris. Untuk mengekod maklumat simbolik di dalamnya, cukup untuk menggunakan hanya 7 bit memori, manakala 1 bait yang terdiri daripada 8 bit telah diperuntukkan untuk tujuan ini. Bilangan aksara yang difahami oleh komputer dalam kes ini ialah 128. Aksara ini termasuk abjad Inggeris dengan tanda baca, nombor dan beberapa aksara khas. Pengekodan tujuh-bit bahasa Inggeris dengan jadual yang sepadan (halaman kod), yang dibangunkan pada tahun 1963, dipanggil Kod Standard Amerika untuk Pertukaran Maklumat. Biasanya, singkatan "Pengekodan ASCII" adalah dan masih digunakan untuk menandakannya.

Peralihan kepada multibahasa

Dari masa ke masa, komputer digunakan secara meluas di negara bukan berbahasa Inggeris. Dalam hal ini, terdapat keperluan untuk pengekodan yang membenarkan penggunaan bahasa kebangsaan. Ia telah memutuskan untuk tidak mencipta semula roda dan mengambil ASCII sebagai asas. Jadual pengekodan dalam edisi baharu telah berkembang dengan ketara. Penggunaan bit ke-8 memungkinkan untuk menterjemah 256 aksara ke dalam bahasa komputer.

Penerangan

Pengekodan ASCII mempunyai jadual yang dibahagikan kepada 2 bahagian. Hanya separuh pertamanya dianggap sebagai piawaian antarabangsa yang diterima umum. Ia termasuk:

  • Aksara dengan nombor siri dari 0 hingga 31, dikodkan dalam urutan dari 00000000 hingga 00011111. Ia dikhaskan untuk aksara kawalan yang mengawal proses memaparkan teks pada skrin atau pencetak, membunyikan isyarat bunyi, dsb.
  • Aksara dengan NN dalam jadual dari 32 hingga 127, dikodkan mengikut urutan dari 00100000 hingga 01111111 membentuk bahagian standard jadual. Ini termasuk ruang (N 32), huruf abjad Latin (huruf kecil dan besar), nombor sepuluh digit dari 0 hingga 9, tanda baca, kurungan gaya yang berbeza dan simbol lain.
  • Aksara dengan nombor bersiri dari 128 hingga 255, dikodkan mengikut urutan dari 10000000 hingga 11111111. Ini termasuk huruf abjad kebangsaan selain daripada Latin. Bahagian alternatif jadual ASCII inilah yang digunakan untuk menukar aksara Rusia ke dalam bentuk komputer.

Beberapa hartanah

Ciri pengekodan ASCII termasuk perbezaan antara huruf "A" - "Z" huruf kecil dan besar dengan hanya satu bit. Keadaan ini sangat memudahkan penukaran daftar, serta menyemak sama ada ia tergolong dalam julat nilai tertentu. Di samping itu, semua huruf dalam sistem pengekodan ASCII diwakili oleh nombor turutan mereka sendiri dalam abjad, yang ditulis dengan 5 digit dalam sistem nombor binari, didahului dengan 011 2 untuk huruf kecil dan 010 2 untuk huruf besar.

Salah satu ciri pengekodan ASCII ialah perwakilan 10 digit - "0" - "9". Dalam sistem nombor kedua mereka bermula dengan 00112 dan berakhir dengan 2 nilai nombor. Oleh itu, 0101 2 adalah bersamaan dengan nombor perpuluhan lima, jadi aksara "5" ditulis sebagai 0011 01012. Berdasarkan perkara di atas, anda boleh menukar nombor BCD dengan mudah kepada rentetan ASCII dengan menambah jujukan bit 00112 pada setiap gigitan pada dibiarkan.

"Unicode"

Seperti yang anda ketahui, beribu-ribu aksara diperlukan untuk memaparkan teks dalam bahasa kumpulan Asia Tenggara. Sebilangan itu tidak boleh diterangkan dalam apa-apa cara dalam satu bait maklumat, jadi walaupun versi lanjutan ASCII tidak lagi dapat memenuhi keperluan pengguna yang meningkat dari negara yang berbeza.

Oleh itu, keperluan timbul untuk mencipta pengekodan teks universal, pembangunan yang, dengan kerjasama ramai pemimpin industri IT global, telah dilaksanakan oleh konsortium Unicode. Pakarnya mencipta sistem UTF 32. Di dalamnya, 32 bit diperuntukkan untuk mengekod 1 aksara, membentuk 4 bait maklumat. Kelemahan utama adalah peningkatan mendadak dalam jumlah memori yang diperlukan sebanyak 4 kali ganda, yang melibatkan banyak masalah.

Pada masa yang sama, bagi kebanyakan negara dengan bahasa rasmi kepunyaan kumpulan Indo-Eropah, bilangan aksara bersamaan dengan 2 32 adalah lebih daripada berlebihan.

Hasil daripada kerja lanjut oleh pakar dari konsortium Unicode, pengekodan UTF-16 muncul. Ia menjadi pilihan untuk menukar maklumat simbolik yang sesuai dengan semua orang dari segi jumlah memori yang diperlukan dan bilangan aksara yang dikodkan. Itulah sebabnya UTF-16 telah diterima pakai secara lalai dan memerlukan 2 bait untuk dikhaskan untuk satu aksara.

Malah versi Unicode yang agak maju dan berjaya ini mempunyai beberapa kelemahan, dan selepas peralihan daripada versi lanjutan ASCII kepada UTF-16, berat dokumen itu meningkat dua kali ganda.

Dalam hal ini, telah diputuskan untuk menggunakan pengekodan panjang berubah-ubah UTF-8. Dalam kes ini, setiap aksara teks sumber dikodkan sebagai urutan panjang dari 1 hingga 6 bait.

Hubungi kod standard Amerika untuk pertukaran maklumat

Semua aksara Latin dalam panjang pembolehubah UTF-8 dikodkan ke dalam 1 bait, seperti dalam sistem pengekodan ASCII.

Ciri khas YTF-8 ialah dalam kes teks dalam bahasa Latin tanpa menggunakan aksara lain, malah program yang tidak memahami Unicode masih boleh membacanya. Dalam erti kata lain, pengekodan teks ASCII asas hanya menjadi sebahagian daripada UTF panjang pembolehubah baharu. Aksara Cyrillic dalam YTF-8 menduduki 2 bait, dan, sebagai contoh, aksara Georgia - 3 bait. Dengan mencipta UTF-16 dan 8, masalah utama mencipta ruang kod tunggal dalam fon telah diselesaikan. Sejak itu, pengeluar fon hanya boleh mengisi jadual dengan bentuk vektor aksara teks berdasarkan keperluan mereka.

Sistem pengendalian yang berbeza lebih suka pengekodan yang berbeza. Untuk dapat membaca dan mengedit teks yang ditaip dalam pengekodan yang berbeza, program penukaran teks Rusia digunakan. Sesetengah editor teks mengandungi transkoder terbina dalam dan membenarkan anda membaca teks tanpa mengira pengekodan.

Sekarang anda tahu berapa banyak aksara dalam pengekodan ASCII dan bagaimana dan mengapa ia dibangunkan. Sudah tentu, hari ini standard Unicode paling meluas di dunia. Walau bagaimanapun, kita tidak boleh lupa bahawa ia berdasarkan ASCII, jadi sumbangan pembangunnya kepada bidang IT harus dihargai.

Dis Hex Simbol Dis Hex Simbol
000 00 pakar. TIDAK 128 80 Ђ
001 01 pakar. SOH 129 81 Ѓ
002 02 pakar. STX 130 82
003 03 pakar. ETX 131 83 ѓ
004 04 pakar. EOT 132 84
005 05 pakar. ENQ 133 85
006 06 pakar. ACK 134 86
007 07 pakar. BEL 135 87
008 08 pakar. B.S. 136 88
009 09 pakar. TAB 137 89
010 0Apakar. LF 138 8AЉ
011 0Bpakar. VT 139 8B‹ ‹
012 0Cpakar. FF 140 8CЊ
013 0Dpakar. CR 141 8DЌ
014 0Epakar. JADI 142 8EЋ
015 0Fpakar. S.I. 143 8FЏ
016 10 pakar. DLE 144 90 ђ
017 11 pakar. DC1 145 91
018 12 pakar. DC2 146 92
019 13 pakar. DC3 147 93
020 14 pakar. DC4 148 94
021 15 pakar. N.A.K. 149 95
022 16 pakar. SYN 150 96
023 17 pakar. ETB 151 97
024 18 pakar. BOLEH 152 98
025 19 pakar. E.M. 153 99
026 1Apakar. SUB 154 9Aљ
027 1Bpakar. ESC 155 9B
028 1Cpakar. FS 156 9Cњ
029 1Dpakar. G.S. 157 9Dќ
030 1Epakar. R.S. 158 9Eћ
031 1Fpakar. AS 159 9Fџ
032 20 klac SP (Angkasa) 160 A0
033 21 ! 161 A1 Ў
034 22 " 162 A2ў
035 23 # 163 A3Ћ
036 24 $ 164 A4¤
037 25 % 165 A5Ґ
038 26 & 166 A6¦
039 27 " 167 A7§
040 28 ( 168 A8Yo
041 29 ) 169 A9©
042 2A* 170 A.A.Є
043 2B+ 171 AB«
044 2C, 172 A.C.¬
045 2D- 173 AD­
046 2E. 174 A.E.®
047 2F/ 175 A.F.Ї
048 30 0 176 B0°
049 31 1 177 B1±
050 32 2 178 B2І
051 33 3 179 B3і
052 34 4 180 B4ґ
053 35 5 181 B5µ
054 36 6 182 B6
055 37 7 183 B7·
056 38 8 184 B8e
057 39 9 185 B9
058 3A: 186 B.A.є
059 3B; 187 BB»
060 3C< 188 B.C.ј
061 3D= 189 BDЅ
062 3E> 190 JADILAHѕ
063 3F? 191 B.F.ї
064 40 @ 192 C0 A
065 41 A 193 C1 B
066 42 B 194 C2 DALAM
067 43 C 195 C3 G
068 44 D 196 C4 D
069 45 E 197 C5 E
070 46 F 198 C6 DAN
071 47 G 199 C7 Z
072 48 H 200 C8 DAN
073 49 saya 201 C9 Y
074 4AJ 202 C.A. KEPADA
075 4BK 203 C.B. L
076 4CL 204 CC M
077 4DM 205 CD N
078 4EN 206 C.E. TENTANG
079 4FO 207 CF P
080 50 P 208 D0 R
081 51 Q 209 D1 DENGAN
082 52 R 210 D2 T
083 53 S 211 D3 U
084 54 T 212 D4 F
085 55 U 213 D5 X
086 56 V 214 D6 C
087 57 W 215 D7 H
088 58 X 216 D8 Sh
089 59 Y 217 D9 SCH
090 5AZ 218 D.A. Kommersant
091 5B[ 219 D.B. Y
092 5C\ 220 DC b
093 5D] 221 DD E
094 5E^ 222 DE YU
095 5F_ 223 DF saya
096 60 ` 224 E0 A
097 61 a 225 E1 b
098 62 b 226 E2 V
099 63 c 227 E3 G
100 64 d 228 E4 d
101 65 e 229 E5 e
102 66 f 230 E6 dan
103 67 g 231 E7 h
104 68 h 232 E8 Dan
105 69 i 233 E9 ke
106 6Aj 234 E.A. Kepada
107 6Bk 235 E.B. l
108 6Cl 236 E.C. m
109 6Dm 237 ED n
110 6En 238 E.E. O
111 6Fo 239 E.F. P
112 70 hlm 240 F0 R
113 71 q 241 F1 Dengan
114 72 r 242 F2 T
115 73 s 243 F3 di
116 74 t 244 F4 f
117 75 u 245 F5 X
118 76 v 246 F6 ts
119 77 w 247 F7 h
120 78 x 248 F8 w
121 79 y 249 F9 sch
122 7Az 250 F.A. ъ
123 7B{ 251 FB s
124 7C| 252 F.C. b
125 7D} 253 FD eh
126 7E~ 254 F.E. Yu
127 7FPakar. DEL 255 FF saya

Jadual kod aksara Windows ASCII.
Perihalan watak khas (kawalan).

Perlu diingatkan bahawa aksara kawalan jadual ASCII pada asalnya digunakan untuk memastikan pertukaran data melalui teletypewriter, kemasukan data daripada pita tebuk, dan untuk kawalan mudah peranti luaran.
Pada masa ini, kebanyakan aksara kawalan jadual ASCII tidak lagi membawa beban ini dan boleh digunakan untuk tujuan lain.
Kod Penerangan
NUL, 00Null, kosong
SOH, 01Permulaan Tajuk
STX, 02Permulaan TeXt, permulaan teks.
ETX, 03Tamat TeXt, akhir teks
EOT, 04Tamat Penghantaran
ENQ, 05Tanya. Tolong sahkan
ACK, 06Pengakuan. Saya mengesahkan
BEL, 07Bell, panggil
BS, 08Ruang belakang, kembali satu aksara
TAB, 09Tab, tab mendatar
LF, 0ASuapan Baris, suapan baris.
Pada masa kini dalam kebanyakan bahasa pengaturcaraan ia dilambangkan sebagai \n
VT, 0BTab Menegak, penjadualan menegak.
FF, 0CSuapan Borang, suapan halaman, halaman baharu
CR, 0DPulang gerabak, pemulangan gerabak.
Pada masa kini dalam kebanyakan bahasa pengaturcaraan ia dilambangkan sebagai \r
JADI,0EShift Out, tukar warna reben dakwat dalam peranti pencetakan
SI, 0FShift In, kembalikan warna reben dakwat dalam peranti pencetakan semula
DLE, 10Data Link Escape, menukar saluran kepada penghantaran data
DC1, 11
DC2, 12
DC3, 13
DC4, 14
Kawalan Peranti, simbol kawalan peranti
NAK, 15Pengakuan Negatif, saya tidak mengesahkan.
SYN, 16Penyegerakan. Simbol penyegerakan
ETB, 17Tamat Blok Teks, hujung blok teks
BOLEH, 18Batal, pembatalan yang dihantar sebelum ini
EM, 19Akhir Sederhana
SUB, 1APengganti, pengganti. Diletakkan di tempat simbol yang maknanya hilang atau rosak semasa penghantaran
ESC, 1BUrutan Kawalan Melarikan Diri
FS, 1CPemisah Fail, pemisah fail
GS, 1DPemisah Kumpulan
RS, 1EPemisah Rekod, pemisah rekod
AS, 1FPemisah Unit
DEL, 7FPadam, padam aksara terakhir.

[Pengekodan 8-bit: ASCII, KOI-8R dan CP1251] Jadual pengekodan pertama yang dibuat di Amerika Syarikat tidak menggunakan bit kelapan dalam bait. Teks diwakili sebagai urutan bait, tetapi bit kelapan tidak diambil kira (ia digunakan untuk tujuan rasmi).

Jadual telah menjadi piawaian yang diterima umum ASCII(Kod Standard Amerika untuk Pertukaran Maklumat). 32 aksara pertama jadual ASCII (00 hingga 1F) telah digunakan untuk aksara bukan pencetakan. Mereka direka untuk mengawal peranti percetakan, dsb. Selebihnya - dari 20 hingga 7F - ialah aksara biasa (boleh dicetak).

Jadual 1 - pengekodan ASCII

DisHexOktCharPenerangan
0 0 000 null
1 1 001 permulaan tajuk
2 2 002 permulaan teks
3 3 003 akhir teks
4 4 004 akhir penghantaran
5 5 005 siasatan
6 6 006 mengakui
7 7 007 loceng
8 8 010 ruang belakang
9 9 011 tab mendatar
10 A 012 baris baru
11 B 013 tab menegak
12 C 014 halaman baharu
13 D 015 pemulangan pengangkutan
14 E 016 beralih keluar
15 F 017 beralih masuk
16 10 020 melarikan diri pautan data
17 11 021 kawalan peranti 1
18 12 022 kawalan peranti 2
19 13 023 kawalan peranti 3
20 14 024 kawalan peranti 4
21 15 025 pengakuan negatif
22 16 026 terbiar segerak
23 17 027 akhir trans. blok
24 18 030 batalkan
25 19 031 akhir medium
26 1A 032 pengganti
27 1B 033 melarikan diri
28 1C 034 pemisah fail
29 1D 035 pemisah kumpulan
30 1E 036 pemisah rekod
31 1F 037 pemisah unit
32 20 040 angkasa lepas
33 21 041 !
34 22 042 "
35 23 043 #
36 24 044 $
37 25 045 %
38 26 046 &
39 27 047 "
40 28 050 (
41 29 051 )
42 2A 052 *
43 2B 053 +
44 2C 054 ,
45 2D 055 -
46 2E 056 .
47 2F 057 /
48 30 060 0
49 31 061 1
50 32 062 2
51 33 063 3
52 34 064 4
53 35 065 5
54 36 066 6
55 37 067 7
56 38 070 8
57 39 071 9
58 3A 072 :
59 3B 073 ;
60 3C 074 <
61 3D 075 =
62 3E 076 >
63 3F 077 ?
DisHexOktChar
64 40 100 @
65 41 101 A
66 42 102 B
67 43 103 C
68 44 104 D
69 45 105 E
70 46 106 F
71 47 107 G
72 48 110 H
73 49 111 saya
74 4A 112 J
75 4B 113 K
76 4C 114 L
77 4D 115 M
78 4E 116 N
79 4F 117 O
80 50 120 P
81 51 121 Q
82 52 122 R
83 53 123 S
84 54 124 T
85 55 125 U
86 56 126 V
87 57 127 W
88 58 130 X
89 59 131 Y
90 5A 132 Z
91 5B 133 [
92 5C 134 \
93 5D 135 ]
94 5E 136 ^
95 5F 137 _
96 60 140 `
97 61 141 a
98 62 142 b
99 63 143 c
100 64 144 d
101 65 145 e
102 66 146 f
103 67 147 g
104 68 150 h
105 69 151 i
106 6A 152 j
107 6B 153 k
108 6C 154 l
109 6D 155 m
110 6E 156 n
111 6F 157 o
112 70 160 hlm
113 71 161 q
114 72 162 r
115 73 163 s
116 74 164 t
117 75 165 u
118 76 166 v
119 77 167 w
120 78 170 x
121 79 171 y
122 7A 172 z
123 7B 173 {
124 7C 174 |
125 7D 175 }
126 7E 176 ~
127 7F 177 DEL

Seperti yang anda boleh lihat dengan mudah, pengekodan ini hanya mengandungi huruf Latin dan yang digunakan dalam bahasa Inggeris. Terdapat juga simbol aritmetik dan perkhidmatan lain. Tetapi tidak ada huruf Rusia, mahupun huruf Latin khas untuk bahasa Jerman atau Perancis. Ini mudah dijelaskan - pengekodan telah dibangunkan secara khusus sebagai standard Amerika. Apabila komputer mula digunakan di seluruh dunia, aksara lain perlu dikodkan.

Untuk melakukan ini, ia telah memutuskan untuk menggunakan bit kelapan dalam setiap bait. Ini menjadikan 128 lagi nilai tersedia (dari 80 hingga FF) yang boleh digunakan untuk mengekod aksara. Yang pertama daripada jadual lapan bit ialah "ASCII lanjutan" ( ASCII dilanjutkan) - termasuk pelbagai varian aksara Latin yang digunakan dalam beberapa bahasa Eropah Barat. Ia juga mengandungi simbol tambahan lain, termasuk pseudografik.

Aksara pseudografik membolehkan anda menyediakan beberapa rupa grafik dengan hanya memaparkan aksara teks pada skrin. Sebagai contoh, program pengurusan fail FAR Manager berfungsi menggunakan pseudografik.

Tiada huruf Rusia dalam jadual ASCII Lanjutan. Rusia (dahulunya USSR) dan negara lain mencipta pengekodan mereka sendiri yang memungkinkan untuk mewakili aksara "kebangsaan" tertentu dalam fail teks 8-bit - huruf Latin bahasa Poland dan Czech, Cyrillic (termasuk huruf Rusia) dan abjad lain.

Dalam semua pengekodan yang telah tersebar luas, 127 aksara pertama (iaitu, nilai bait dengan bit kelapan bersamaan dengan 0) adalah sama dengan ASCII. Jadi fail ASCII berfungsi dalam salah satu pengekodan ini; Huruf-huruf bahasa Inggeris diwakili dengan cara yang sama.

Organisasi ISO(Pertubuhan Standardisasi Antarabangsa) menerima pakai sekumpulan piawaian ISO 8859. Ia mentakrifkan pengekodan 8-bit untuk kumpulan bahasa yang berbeza. Jadi, ISO 8859-1 ialah jadual ASCII Lanjutan untuk Amerika Syarikat dan Eropah Barat. Dan ISO 8859-5 ialah jadual untuk abjad Cyrillic (termasuk Rusia).

Walau bagaimanapun, atas sebab sejarah, pengekodan ISO 8859-5 tidak berakar umbi. Pada hakikatnya, pengekodan berikut digunakan untuk bahasa Rusia:

Kod Muka Surat 866 ( CP866), aka "DOS", aka "pengekodan GOST alternatif". Digunakan secara meluas sehingga pertengahan 90-an; kini digunakan pada tahap yang terhad. Hampir tidak digunakan untuk mengedarkan teks di Internet.
- KOI-8. Dibangunkan pada tahun 70-80an. Ia adalah piawaian yang diterima umum untuk menghantar mesej e-mel di Internet Rusia. Ia juga digunakan secara meluas dalam sistem pengendalian keluarga Unix, termasuk Linux. Versi KOI-8, direka untuk bahasa Rusia, dipanggil KOI-8R; Terdapat versi untuk bahasa Cyrillic lain (contohnya, KOI8-U ialah versi untuk bahasa Ukraine).
- Kod Halaman 1251, CP1251,Windows-1251. Dibangunkan oleh Microsoft untuk menyokong bahasa Rusia dalam Windows.

Kelebihan utama CP866 ialah pengekalan aksara pseudo-grafik di tempat yang sama seperti dalam Extended ASCII; oleh itu, program teks asing, sebagai contoh, Norton Commander yang terkenal, boleh berfungsi tanpa perubahan. CP866 kini digunakan untuk program Windows yang dijalankan dalam tetingkap teks atau mod teks skrin penuh, termasuk FAR Manager.

Teks dalam CP866 agak jarang berlaku sejak beberapa tahun kebelakangan ini (tetapi ia digunakan untuk mengekod nama fail Rusia dalam Windows). Oleh itu, kami akan membincangkan dengan lebih terperinci mengenai dua pengekodan lain - KOI-8R dan CP1251.



Seperti yang anda lihat, dalam jadual pengekodan CP1251, huruf Rusia disusun dalam susunan abjad (dengan pengecualian, bagaimanapun, huruf E). Susunan ini memudahkan atur cara komputer untuk mengisih mengikut abjad.

Tetapi dalam KOI-8R susunan huruf Rusia kelihatan rawak. Tetapi sebenarnya tidak.

Dalam banyak program lama, bit ke-8 telah hilang semasa memproses atau menghantar teks. (Kini program sedemikian boleh dikatakan "pupus", tetapi pada akhir 80-an - awal 90-an mereka tersebar luas). Untuk mendapatkan nilai 7-bit daripada nilai 8-bit, hanya tolak 8 daripada digit paling ketara; sebagai contoh, E1 menjadi 61.

Sekarang bandingkan KOI-8R dengan jadual ASCII (Jadual 1). Anda akan mendapati bahawa huruf Rusia diletakkan dalam surat-menyurat yang jelas dengan huruf Latin. Jika bit kelapan hilang, huruf kecil Rusia bertukar menjadi huruf Latin besar, dan huruf Rusia besar bertukar menjadi huruf Latin huruf kecil. Jadi, E1 dalam KOI-8 ialah "A" Rusia, manakala 61 dalam ASCII ialah "a" Latin.

Jadi, KOI-8 membolehkan anda mengekalkan kebolehbacaan teks Rusia apabila bit ke-8 hilang. "Hello semua" menjadi "WSEM pRIWET".

Baru-baru ini, kedua-dua susunan abjad aksara dalam jadual pengekodan dan kebolehbacaan dengan kehilangan bit ke-8 telah kehilangan kepentingannya yang menentukan. Bit kelapan dalam komputer moden tidak hilang semasa penghantaran atau pemprosesan. Dan pengisihan abjad dilakukan dengan mengambil kira pengekodan, dan bukan dengan hanya membandingkan kod. (Dengan cara ini, kod CP1251 tidak disusun sepenuhnya mengikut abjad - huruf E tidak berada di tempatnya).

Disebabkan fakta bahawa terdapat dua pengekodan biasa, apabila bekerja dengan Internet (mel, melayari laman web), anda kadang-kadang dapat melihat set huruf yang tidak bermakna dan bukannya teks Rusia. Contohnya, "SAYA SBYUFEMHEL." Ini hanyalah perkataan "dengan hormat"; tetapi ia telah dikodkan dalam pengekodan CP1251, dan komputer menyahkod teks menggunakan jadual KOI-8. Jika perkataan yang sama, sebaliknya, dikodkan dalam KOI-8, dan komputer menyahkod teks mengikut jadual CP1251, hasilnya akan menjadi "U HCHBTSEOYEN".

Kadang-kadang ia berlaku bahawa komputer mentafsir huruf bahasa Rusia menggunakan jadual yang tidak dimaksudkan untuk bahasa Rusia. Kemudian, bukannya huruf Rusia, satu set simbol yang tidak bermakna muncul (contohnya, huruf Latin bahasa Eropah Timur); mereka sering dipanggil "crocozybras".

Dalam kebanyakan kes, program moden mengatasi penentuan pengekodan dokumen Internet (e-mel dan halaman Web) secara bebas. Tetapi kadang-kadang mereka "misfire", dan kemudian anda dapat melihat urutan aneh huruf Rusia atau "krokozyabry". Sebagai peraturan, dalam keadaan sedemikian, untuk memaparkan teks sebenar pada skrin, sudah cukup untuk memilih pengekodan secara manual dalam menu program.

Maklumat daripada halaman http://open-office.edusite.ru/TextProcessor/p5aa1.html telah digunakan untuk artikel ini.

Bahan yang diambil dari tapak: