Ada karakter non-ascii. Pengkodean informasi teks

Menurut International Telecommunication Union, pada tahun 2016, tiga setengah miliar orang menggunakan Internet dengan keteraturan yang bervariasi. Kebanyakan dari mereka bahkan tidak memikirkan fakta bahwa setiap pesan yang mereka kirim melalui PC atau gadget seluler, serta teks yang ditampilkan di semua jenis monitor, sebenarnya adalah kombinasi 0 dan 1. Representasi informasi ini disebut encoding. Ini menyediakan dan sangat memudahkan implementasi penyimpanan, pemrosesan, dan transmisinya. Pada tahun 1963, pengkodean ASCII Amerika dikembangkan, yang merupakan subjek artikel ini.

Representasi informasi dalam komputer

Dari sudut pandang komputer elektronik mana pun, teks adalah sekumpulan karakter individu. Ini termasuk tidak hanya huruf, termasuk huruf kapital, tetapi juga tanda baca, angka. Selain itu, karakter khusus "=", "&", "(" dan spasi digunakan.

Himpunan karakter yang membentuk teks disebut alfabet, dan jumlahnya disebut pangkat (dilambangkan dengan N). Untuk menentukannya, digunakan ekspresi N = 2^b, di mana b adalah jumlah bit atau bobot informasi dari karakter tertentu.

Terbukti bahwa alfabet dengan kapasitas 256 karakter memungkinkan Anda untuk mewakili semua karakter yang diperlukan.

Karena 256 adalah pangkat 8 dari 2, bobot setiap karakter adalah 8 bit.

Satuan ukuran 8 bit disebut 1 byte, jadi biasanya dikatakan bahwa setiap karakter dalam teks yang disimpan di komputer membutuhkan satu byte memori.

Bagaimana pengkodean dilakukan?

Setiap teks dimasukkan ke dalam memori komputer pribadi dengan menggunakan tombol keyboard di mana angka, huruf, tanda baca dan simbol lainnya ditulis. Mereka ditransfer ke RAM dalam kode biner, yaitu, setiap karakter diberi kode desimal yang akrab bagi manusia, dari 0 hingga 255, yang sesuai dengan kode biner - dari 00000000 hingga 11111111.

Pengkodean karakter byte-by-byte memungkinkan prosesor teks untuk mengakses setiap karakter secara individual. Pada saat yang sama, 256 karakter sudah cukup untuk mewakili informasi karakter apa pun.

Pengkodean karakter ASCII

Singkatan dalam bahasa Inggris ini adalah singkatan dari code for information interchange.

Bahkan pada awal komputerisasi, menjadi jelas bahwa Anda dapat menemukan berbagai cara untuk menyandikan informasi. Namun, untuk mentransfer informasi dari satu komputer ke komputer lain, perlu untuk mengembangkan standar tunggal. Jadi, pada tahun 1963, tabel pengkodean ASCII muncul di Amerika Serikat. Di dalamnya, setiap simbol alfabet komputer diberikan nomor urutnya dalam representasi biner. Awalnya, pengkodean ASCII hanya digunakan di Amerika Serikat, dan kemudian menjadi standar internasional untuk PC.

Kode ASCII dibagi menjadi 2 bagian. Hanya paruh pertama tabel ini yang dianggap sebagai Standar Internasional. Ini termasuk karakter dengan nomor seri dari 0 (dikodekan sebagai 00000000) hingga 127 (kode 01111111).

Nomor seri

Pengkodean teks ASCII

Simbol

0000 0000 - 0001 1111

Karakter dengan N dari 0 hingga 31 disebut karakter kontrol. Fungsinya adalah untuk "mengatur" proses menampilkan teks pada monitor atau printer, memberikan sinyal suara, dll.

0010 0000 - 0111 1111

Simbol dengan N dari 32 hingga 127 (bagian standar tabel) adalah huruf besar dan kecil dari alfabet Latin, angka ke-10, tanda baca, serta berbagai tanda kurung, simbol komersial, dan lainnya. Simbol 32 menunjukkan spasi.

1000 0000 - 1111 1111

Karakter dengan N dari 128 hingga 255 (bagian alternatif dari tabel atau halaman kode) dapat memiliki varian yang berbeda, yang masing-masing memiliki nomor sendiri. Halaman kode digunakan untuk menentukan abjad nasional yang berbeda dari bahasa Latin. Secara khusus, dengan bantuannya pengkodean ASCII untuk karakter Rusia dilakukan.

Dalam tabel, pengkodean adalah huruf besar dan mengikuti satu sama lain dalam urutan abjad, dan nomor dalam urutan menaik. Prinsip ini dipertahankan untuk alfabet Rusia.

Karakter kontrol

Tabel penyandian ASCII awalnya dibuat untuk menerima dan mengirimkan informasi melalui perangkat yang sudah lama tidak digunakan, seperti teletype. Dalam hal ini, karakter yang tidak dapat dicetak disertakan dalam set karakter, yang digunakan sebagai perintah untuk mengontrol perangkat ini. Perintah serupa digunakan dalam metode pesan pra-komputer seperti kode Morse, dll.

Karakter "teletype" yang paling umum adalah NUL (00, "nol"). Itu masih digunakan di sebagian besar bahasa pemrograman hingga hari ini, yang menunjukkan tanda akhir dari sebuah baris.

Di mana pengkodean ASCII digunakan?

Kode Standar Amerika diperlukan untuk lebih dari sekadar memasukkan informasi tekstual pada keyboard. Ini juga digunakan dalam grafik. Secara khusus, dalam program ASCII Art Maker, gambar dari berbagai ekstensi mewakili spektrum karakter ASCII.

Produk tersebut terdiri dari dua jenis: produk yang menjalankan fungsi editor grafis dengan mengubah gambar menjadi teks dan mengubah "gambar" menjadi grafik ASCII. Misalnya, emotikon yang terkenal adalah contoh utama dari karakter penyandian.

ASCII juga dapat digunakan saat membuat dokumen HTML. Dalam hal ini, Anda dapat memasukkan serangkaian karakter tertentu, dan saat melihat halaman, karakter akan muncul di layar yang sesuai dengan kode ini.

ASCII juga diperlukan untuk membuat situs multibahasa, karena karakter yang tidak termasuk dalam tabel nasional tertentu diganti dengan kode ASCII.

Beberapa Fitur

Untuk menyandikan informasi tekstual dalam penyandian ASCII, 7 bit awalnya digunakan (satu tetap kosong), tetapi hari ini berfungsi seperti 8-bit.

Huruf-huruf yang terletak di kolom yang terletak di atas dan di bawah berbeda satu sama lain hanya dengan satu bit. Ini sangat mengurangi kerumitan verifikasi.

Menggunakan ASCII di Microsoft Office

Jika perlu, jenis pengkodean informasi tekstual ini dapat digunakan di editor teks Microsoft seperti Notepad dan Office Word. Namun, saat mengetik dalam kasus seperti itu, beberapa fungsi tidak dapat digunakan. Misalnya, Anda tidak akan dapat membuatnya tebal, karena ASCII hanya mempertahankan arti informasi, mengabaikan tampilan dan bentuknya secara umum.

Standardisasi

Organisasi ISO telah mengadopsi standar ISO 8859. Grup ini mendefinisikan pengkodean delapan bit untuk grup bahasa yang berbeda. Secara khusus, ISO 8859-1 adalah Extended ASCII, yang merupakan tabel untuk Amerika Serikat dan negara-negara Eropa Barat. Dan ISO 8859-5 adalah tabel yang digunakan untuk Cyrillic, termasuk Rusia.

Untuk sejumlah alasan historis, standar ISO 8859-5 digunakan untuk waktu yang sangat singkat.

Untuk bahasa Rusia, penyandian sebenarnya digunakan saat ini:

  • CP866 (Halaman Kode 866) atau DOS, yang sering disebut sebagai pengkodean alternatif GOST. Itu secara aktif digunakan hingga pertengahan 90-an abad terakhir. Saat ini praktis tidak digunakan.
  • KOI-8. Encoding dikembangkan pada 1970-an dan 80-an, dan saat ini merupakan standar yang diterima secara umum untuk pesan email di RuNet. Ini banyak digunakan dalam keluarga sistem operasi Unix, termasuk Linux. Versi "Rusia" dari KOI-8 disebut KOI-8R. Selain itu, ada versi untuk bahasa Cyrillic lainnya, seperti Ukraina.
  • Halaman Kode 1251 (CP 1251, Windows - 1251). Dikembangkan oleh Microsoft untuk memberikan dukungan untuk bahasa Rusia di lingkungan Windows.

Keuntungan utama dari standar CP866 pertama adalah pelestarian karakter pseudografik pada posisi yang sama seperti pada Extended ASCII. Ini memungkinkan untuk menjalankan program teks buatan luar negeri, seperti Norton Commander yang terkenal, tanpa perubahan. Saat ini, CP866 digunakan untuk program yang dikembangkan di bawah Windows yang bekerja dalam mode teks layar penuh atau di jendela teks, termasuk FAR Manager.

Teks komputer yang ditulis dalam pengkodean CP866 akhir-akhir ini cukup jarang, tetapi itulah yang digunakan untuk nama file Rusia di Windows.

"Unikode"

Saat ini, pengkodean ini adalah yang paling banyak digunakan. Kode Unicode dibagi menjadi beberapa wilayah. Yang pertama (U+0000 hingga U+007F) menyertakan karakter ASCII dengan kode. Ini diikuti oleh area karakter berbagai aksara nasional, serta tanda baca dan simbol teknis. Selain itu, beberapa kode "Unicode" dicadangkan untuk penyertaan karakter baru di masa mendatang.

Sekarang Anda tahu bahwa dalam penyandian ASCII, setiap karakter direpresentasikan sebagai kombinasi dari 8 nol dan satu. Untuk non-spesialis, informasi ini mungkin tampak tidak perlu dan tidak menarik, tetapi tidakkah Anda ingin tahu apa yang terjadi di "otak" PC Anda?!

Halo, para pembaca situs blog yang terhormat. Hari ini kami akan berbicara dengan Anda tentang dari mana krakozyabry berasal di situs dan dalam program, pengkodean teks apa yang ada dan mana yang harus digunakan. Mari kita lihat lebih dekat sejarah perkembangannya, mulai dari ASCII dasar, serta versi tambahannya CP866, KOI8-R, Windows 1251, dan diakhiri dengan pengkodean modern dari Unicode Consortium UTF 16 dan 8.

Bagi sebagian orang, informasi ini mungkin tampak berlebihan, tetapi Anda akan tahu berapa banyak pertanyaan yang saya dapatkan secara khusus sehubungan dengan merangkak keluar krakozyabrs (kumpulan karakter yang tidak dapat dibaca). Sekarang saya akan memiliki kesempatan untuk merujuk semua orang ke teks artikel ini dan secara mandiri mencari kusen saya. Nah, bersiaplah menyerap informasi dan coba ikuti jalan ceritanya.

ASCII - penyandian teks dasar untuk bahasa Latin

Perkembangan penyandian teks terjadi bersamaan dengan pembentukan industri TI, dan selama ini mereka berhasil mengalami cukup banyak perubahan. Secara historis, semuanya dimulai dengan EBCDIC, yang agak disonan dalam pengucapan Rusia, yang memungkinkan untuk mengkodekan huruf alfabet Latin, angka Arab, dan tanda baca dengan karakter kontrol.

Tapi tetap saja, titik awal untuk pengembangan pengkodean teks modern harus dianggap yang terkenal ASCII(Kode Standar Amerika untuk Pertukaran Informasi, yang dalam bahasa Rusia biasanya diucapkan sebagai "aski"). Ini menjelaskan 128 karakter pertama yang paling umum digunakan oleh pengguna berbahasa Inggris - huruf Latin, angka Arab, dan tanda baca.

Bahkan dalam 128 karakter yang dijelaskan dalam ASCII, ada beberapa karakter layanan seperti tanda kurung, batang, tanda bintang, dll. Sebenarnya, Anda dapat melihatnya sendiri:

Ini adalah 128 karakter dari versi asli ASCII yang telah menjadi standar, dan dalam pengkodean lain Anda pasti akan bertemu dengan mereka dan mereka akan berdiri dalam urutan itu.

Tetapi kenyataannya adalah bahwa dengan bantuan satu byte informasi, dimungkinkan untuk menyandikan bukan 128, tetapi sebanyak 256 nilai yang berbeda (dua pangkat delapan sama dengan 256), jadi setelah versi dasar Asuka, seluruh rangkaian pengkodean ASCII yang diperluas, di mana, selain 128 karakter dasar, juga dimungkinkan untuk mengkodekan simbol pengkodean nasional (misalnya, Rusia).

Di sini, mungkin, ada baiknya mengatakan sedikit lebih banyak tentang sistem angka yang digunakan dalam deskripsi. Pertama, seperti yang Anda ketahui, komputer hanya bekerja dengan angka dalam sistem biner, yaitu dengan nol dan satu ("Aljabar Boolean", jika ada yang belajar di institut atau di sekolah). , yang masing-masing adalah dua di derajat, mulai dari nol, dan sampai dua di ketujuh:

Tidak sulit untuk memahami bahwa hanya ada 256 kemungkinan kombinasi nol dan satu dalam konstruksi seperti itu.Mengonversi bilangan dari biner ke desimal cukup sederhana. Anda hanya perlu menjumlahkan semua kekuatan dari dua, di mana ada satu.

Dalam contoh kita, ini adalah 1 (2 pangkat nol) ditambah 8 (dua pangkat 3), ditambah 32 (dua pangkat lima), ditambah 64 (ke enam), ditambah 128 (ke tujuh) . Total mendapat 233 dalam notasi desimal. Seperti yang Anda lihat, semuanya sangat sederhana.

Tetapi jika Anda melihat lebih dekat pada tabel dengan karakter ASCII, Anda akan melihat bahwa mereka diwakili dalam pengkodean heksadesimal. Misalnya, "tanda bintang" sesuai di Asci dengan angka heksadesimal 2A. Anda mungkin tahu bahwa selain angka Arab, sistem bilangan heksadesimal juga menggunakan huruf latin dari A (artinya sepuluh) hingga F (artinya lima belas).

Nah, untuk konversi biner ke heksadesimal gunakan metode sederhana dan visual berikut. Setiap byte informasi dibagi menjadi dua bagian dari empat bit, seperti yang ditunjukkan pada gambar di atas. Itu. di setiap setengah byte, hanya enam belas nilai yang dapat dikodekan dalam kode biner (dua pangkat empat), yang dapat dengan mudah direpresentasikan sebagai angka heksadesimal.

Selain itu, di bagian kiri byte, perlu untuk menghitung derajat lagi mulai dari nol, dan tidak seperti yang ditunjukkan pada tangkapan layar. Akibatnya, dengan perhitungan sederhana, kami mendapatkan bahwa nomor E9 dikodekan di tangkapan layar. Saya harap jalan pemikiran saya dan solusi untuk teka-teki ini menjadi jelas bagi Anda. Nah, sekarang mari kita lanjutkan, sebenarnya, untuk berbicara tentang penyandian teks.

Versi lanjutan dari penyandian Asuka - CP866 dan KOI8-R dengan pseudografik

Jadi, kami mulai berbicara tentang ASCII, yang merupakan titik awal untuk pengembangan semua pengkodean modern (Windows 1251, Unicode, UTF 8).

Awalnya, itu hanya berisi 128 karakter alfabet Latin, angka Arab, dan yang lainnya, tetapi dalam versi yang diperluas menjadi mungkin untuk menggunakan semua 256 nilai yang dapat dikodekan dalam satu byte informasi. Itu. menjadi mungkin untuk menambahkan karakter huruf-huruf bahasa Anda ke Asci.

Di sini perlu menyimpang sekali lagi untuk menjelaskan - Mengapa Anda membutuhkan pengkodean sama sekali? teks dan mengapa itu sangat penting. Karakter di layar komputer Anda dibentuk berdasarkan dua hal - kumpulan bentuk vektor (representasi) dari semua jenis karakter (mereka ada dalam file bersama) dan kode yang memungkinkan Anda untuk menarik keluar dari kumpulan bentuk vektor ini ( file font) persis karakter yang perlu Anda masukkan ke tempat yang tepat.

Jelas bahwa font bertanggung jawab atas bentuk vektor itu sendiri, tetapi sistem operasi dan program yang digunakan di dalamnya bertanggung jawab untuk pengkodean. Itu. teks apa pun di komputer Anda akan menjadi satu set byte, yang masing-masing mengkodekan satu karakter tunggal dari teks ini.

Program yang menampilkan teks ini di layar (editor teks, browser, dll.), Saat mengurai kode, membaca pengkodean karakter berikutnya dan mencari bentuk vektor yang sesuai dalam file font yang diinginkan yang terhubung untuk menampilkan teks ini dokumen. Semuanya sederhana dan dangkal.

Ini berarti bahwa untuk mengkodekan karakter apa pun yang kita butuhkan (misalnya, dari alfabet nasional), dua kondisi harus dipenuhi - bentuk vektor karakter ini harus dalam font yang digunakan, dan karakter ini dapat dikodekan dalam pengkodean ASCII yang diperluas dalam satu byte. Oleh karena itu, ada banyak pilihan seperti itu. Hanya untuk pengkodean karakter bahasa Rusia, ada beberapa varietas Aska yang diperluas.

Misalnya, awalnya ada CP866, di mana dimungkinkan untuk menggunakan karakter alfabet Rusia dan itu adalah versi ASCII yang diperluas.

Itu. bagian atasnya benar-benar bertepatan dengan versi dasar Asuka (128 karakter Latin, angka, dan omong kosong lainnya), yang ditunjukkan pada tangkapan layar tepat di atas, tetapi bagian bawah tabel dengan penyandian CP866 memiliki bentuk yang ditunjukkan pada tangkapan layar tepat di bawah dan diizinkan untuk mengkodekan 128 tanda lainnya (huruf Rusia dan semua jenis pseudografik di sana):

Soalnya, di kolom kanan, angkanya dimulai dengan 8, karena angka dari 0 hingga 7 merujuk ke bagian dasar ASCII (lihat tangkapan layar pertama). Itu. huruf Rusia "M" di CP866 akan memiliki kode 9C (terletak di persimpangan baris yang sesuai dengan 9 dan kolom dengan angka C dalam sistem bilangan heksadesimal), yang dapat ditulis dalam satu byte informasi, dan jika ada font yang cocok dengan karakter Rusia, surat ini tanpa masalah akan ditampilkan dalam teks.

Dari mana jumlah ini berasal? pseudografik di CP866? Masalahnya adalah pengkodean untuk teks Rusia ini dikembangkan kembali pada tahun-tahun berbulu itu, ketika tidak ada distribusi sistem operasi grafis seperti sekarang. Dan di Dosa, dan sistem operasi teks serupa, pseudo-grafik memungkinkan untuk mendiversifikasi desain teks, dan karena itu berlimpah di CP866 dan semua rekan lainnya dari kategori versi Asuka yang diperluas.

CP866 didistribusikan oleh IBM, tetapi selain itu, sejumlah pengkodean dikembangkan untuk karakter Rusia, misalnya, jenis yang sama (ASCII diperpanjang) dapat dikaitkan KOI8-R:

Prinsip operasinya tetap sama dengan CP866 yang dijelaskan sedikit sebelumnya - setiap karakter teks dikodekan oleh satu byte tunggal. Tangkapan layar menunjukkan paruh kedua tabel KOI8-R, karena babak pertama sepenuhnya sesuai dengan Asuka dasar, yang ditunjukkan pada tangkapan layar pertama di artikel ini.

Di antara fitur-fitur pengkodean KOI8-R, dapat dicatat bahwa huruf-huruf Rusia dalam tabelnya tidak dalam urutan abjad, seperti, misalnya, dilakukan di CP866.

Jika Anda melihat tangkapan layar pertama (dari bagian dasar, yang termasuk dalam semua pengkodean yang diperluas), Anda akan melihat bahwa di KOI8-R huruf Rusia terletak di sel tabel yang sama dengan huruf konsonan alfabet Latin dengan mereka dari bagian pertama tabel. Ini dilakukan untuk kenyamanan beralih dari karakter Rusia ke Latin dengan membuang hanya satu bit (dua pangkat tujuh atau 128).

Windows 1251 - versi modern ASCII dan mengapa krakozyabry merangkak keluar

Pengembangan lebih lanjut dari pengkodean teks disebabkan oleh fakta bahwa sistem operasi grafis mendapatkan popularitas dan kebutuhan untuk menggunakan pseudografik di dalamnya menghilang seiring waktu. Akibatnya, seluruh grup muncul, yang, pada dasarnya, masih merupakan versi Asuka yang diperluas (satu karakter teks dikodekan hanya dengan satu byte informasi), tetapi tanpa menggunakan karakter pseudografik.

Mereka milik apa yang disebut pengkodean ANSI, yang dikembangkan oleh American Standards Institute. Dalam bahasa umum, nama Cyrillic juga digunakan untuk varian dengan dukungan untuk bahasa Rusia. Contoh ini dapat melayani.

Ini lebih baik dibandingkan dengan CP866 dan KOI8-R yang digunakan sebelumnya di mana tempat simbol pseudografis di dalamnya diambil oleh simbol tipografi Rusia yang hilang (terlepas dari tanda aksen), serta simbol yang digunakan dalam bahasa Slavia dekat dengan Rusia (Ukraina, Belarusia, dll.) ):

Karena banyaknya pengkodean bahasa Rusia, produsen font dan produsen perangkat lunak terus-menerus mengalami sakit kepala, dan kami, pembaca yang budiman, sering keluar dari masalah yang sangat terkenal. krakozyabry ketika ada kebingungan dengan versi yang digunakan dalam teks.

Sangat sering mereka keluar ketika mengirim dan menerima pesan melalui email, yang mengarah pada pembuatan tabel konversi yang sangat kompleks, yang, pada kenyataannya, tidak dapat menyelesaikan masalah ini pada akarnya, dan seringkali pengguna menggunakan korespondensi untuk menghindari yang terkenal krakozyabrs saat menggunakan pengkodean Rusia seperti CP866, KOI8-R atau Windows 1251.

Faktanya, krakozyabry yang muncul alih-alih teks Rusia adalah hasil dari penggunaan yang salah dari pengkodean bahasa ini, yang tidak sesuai dengan pesan teks yang awalnya dikodekan.

Misalnya, jika Anda mencoba menampilkan karakter yang dikodekan menggunakan CP866 menggunakan tabel kode Windows 1251, maka krakozyabry yang sama (kumpulan karakter yang tidak berarti) ini akan keluar, menggantikan teks pesan sepenuhnya.

Situasi serupa sangat sering terjadi dengan forum atau blog, ketika teks dengan karakter Rusia salah disimpan dalam pengkodean yang salah yang digunakan di situs secara default, atau di editor teks yang salah yang menambahkan lelucon ke kode yang tidak terlihat oleh mata telanjang.

Pada akhirnya, banyak orang bosan dengan situasi seperti itu dengan banyak penyandian dan terus-menerus mengeluarkan krakozyabry, ada prasyarat untuk membuat variasi universal baru yang akan menggantikan semua yang sudah ada dan akhirnya akan menyelesaikan masalah dengan munculnya teks yang tidak dapat dibaca . Selain itu, ada masalah bahasa seperti bahasa Cina, di mana karakter bahasa lebih dari 256.

Unicode (Unicode) - penyandian universal UTF 8, 16 dan 32

Ribuan karakter dari kelompok bahasa Asia Tenggara ini tidak dapat dijelaskan dengan cara apa pun dalam satu byte informasi, yang dialokasikan untuk pengkodean karakter dalam versi ASCII yang diperluas. Akibatnya, sebuah konsorsium yang disebut Unicode(Unicode - Unicode Consortium) dengan kerjasama dari banyak pemimpin industri TI (mereka yang memproduksi perangkat lunak, yang mengkodekan perangkat keras, yang membuat font), yang tertarik dengan munculnya penyandian teks universal.

Variasi pertama yang dirilis di bawah naungan Konsorsium Unicode adalah UTF-32. Angka atas nama encoding berarti jumlah bit yang digunakan untuk mengkodekan satu karakter. 32 bit adalah 4 byte informasi yang akan diperlukan untuk mengkodekan satu karakter dalam UTF pengkodean universal yang baru.

Akibatnya, file yang sama dengan teks, dikodekan dalam versi ASCII yang diperluas dan dalam UTF-32, dalam kasus terakhir akan memiliki ukuran (berat) empat kali lebih besar. Ini buruk, tetapi sekarang kami memiliki kesempatan untuk mengkodekan menggunakan UTF jumlah karakter yang sama dengan dua pangkat tiga puluh detik ( miliaran karakter, yang akan mencakup nilai yang benar-benar diperlukan dengan margin besar).

Tetapi banyak negara dengan bahasa kelompok Eropa tidak perlu menggunakan begitu banyak karakter dalam pengkodean sama sekali, namun, ketika menggunakan UTF-32, mereka akan mendapatkan peningkatan empat kali lipat dalam bobot dokumen teks. untuk apa-apa, dan sebagai hasilnya, peningkatan volume lalu lintas Internet dan volume data yang disimpan. Ini banyak, dan tidak ada yang mampu membeli sampah seperti itu.

Sebagai hasil dari pengembangan Unicode, UTF-16, yang ternyata sangat sukses sehingga diterima sebagai ruang dasar default untuk semua karakter yang kami gunakan. Ini menggunakan dua byte untuk mengkodekan satu karakter. Mari kita lihat seperti apa benda ini.

Di sistem operasi Windows, Anda dapat mengikuti jalur "Mulai" - "Program" - "Aksesori" - "Utilitas" - "Tabel Karakter". Hasilnya, sebuah tabel dengan bentuk vektor dari semua font yang terpasang di sistem Anda akan terbuka. Jika Anda memilih set karakter Unicode di "Opsi Lanjutan", Anda dapat melihat untuk setiap font secara individual seluruh rentang karakter yang disertakan di dalamnya.

Omong-omong, dengan mengklik salah satu dari mereka, Anda dapat melihat bita gandanya kode dalam format UTF-16, terdiri dari empat digit heksadesimal:

Berapa banyak karakter yang dapat dikodekan dalam UTF-16 menggunakan 16 bit? 65536 (dua pangkat enam belas), dan angka inilah yang diadopsi sebagai ruang dasar di Unicode. Selain itu, ada cara untuk menyandikan dengannya sekitar dua juta karakter, tetapi terbatas pada ruang yang diperluas dari satu juta karakter teks.

Tetapi bahkan versi pengkodean Unicode yang sukses ini tidak memberikan banyak kepuasan bagi mereka yang menulis, katakanlah, program hanya dalam bahasa Inggris, karena setelah transisi dari versi ASCII yang diperluas ke UTF-16, bobot dokumen menjadi dua kali lipat (satu byte per satu karakter di Asci dan dua byte per karakter yang sama di UTF-16).

Itu saja untuk kepuasan semua orang dan semua yang ada di konsorsium Unicode, diputuskan untuk dibuat pengkodean panjang variabel. Ini disebut UTF-8. Meskipun delapan dalam nama, itu benar-benar memiliki panjang variabel, yaitu. setiap karakter teks dapat dikodekan ke dalam urutan satu hingga enam byte.

Dalam praktiknya, dalam UTF-8, hanya rentang dari satu hingga empat byte yang digunakan, karena di balik empat byte kode, secara teoritis tidak ada yang mungkin untuk dibayangkan. Semua karakter Latin di dalamnya dikodekan dalam satu byte, seperti di ASCII lama yang bagus.

Hebatnya, dalam kasus pengkodean hanya Latin, bahkan program-program yang tidak mengerti Unicode masih akan membaca apa yang dikodekan dalam UTF-8. Itu. bagian dasar Asuka hanya diteruskan ke gagasan Konsorsium Unicode ini.

Karakter Cyrillic di UTF-8 dikodekan dalam dua byte, dan, misalnya, karakter Georgia dalam tiga byte. Konsorsium Unicode, setelah membuat UTF 16 dan 8, memecahkan masalah utama - sekarang kita punya font memiliki ruang kode tunggal. Dan sekarang pabrikan mereka hanya dapat mengisinya dengan bentuk vektor karakter teks berdasarkan kekuatan dan kemampuan mereka. Sekarang bahkan dalam set.

Pada “Tabel Karakter” di atas, Anda dapat melihat bahwa font yang berbeda mendukung jumlah karakter yang berbeda. Beberapa font yang kaya akan Unicode bisa berukuran sangat besar. Tetapi sekarang mereka berbeda bukan karena mereka dibuat untuk pengkodean yang berbeda, tetapi dalam kenyataan bahwa pabrikan font mengisi atau tidak mengisi ruang kode tunggal dengan satu atau beberapa bentuk vektor sampai akhir.

Krakozyabry alih-alih huruf Rusia - cara memperbaikinya

Sekarang mari kita lihat bagaimana krakozyabras muncul alih-alih teks, atau, dengan kata lain, bagaimana pengkodean yang benar untuk teks Rusia dipilih. Sebenarnya, ini diatur dalam program di mana Anda membuat atau mengedit teks yang sama ini, atau kode menggunakan fragmen teks.

Untuk mengedit dan membuat file teks, saya pribadi menggunakan file . Namun, itu dapat menyoroti sintaks dari ratusan bahasa pemrograman dan markup yang lebih baik, dan juga memiliki kemampuan untuk diperluas menggunakan plugin. Baca ulasan terperinci tentang program luar biasa ini di tautan di bawah ini.

Di menu atas Notepad ++ ada item "Pengkodean", di mana Anda akan memiliki kesempatan untuk mengonversi opsi yang ada ke yang digunakan di situs Anda secara default:

Dalam kasus situs di Joomla 1.5 dan lebih tinggi, serta dalam kasus blog di WordPress, untuk menghindari munculnya bug, pilih opsi UTF8 tanpa BOM. Apa awalan BOM?

Faktanya adalah bahwa ketika mereka mengembangkan pengkodean UTF-16, untuk beberapa alasan mereka memutuskan untuk melampirkannya seperti kemampuan untuk menulis kode karakter, baik dalam urutan langsung (misalnya, 0A15) dan terbalik (150A) . Dan agar program dapat memahami di urutan mana untuk membaca kode, itu diciptakan BOM(Byte Order Mark atau, dengan kata lain, tanda tangan), yang dinyatakan dalam penambahan tiga byte tambahan di awal dokumen.

Dalam pengkodean UTF-8, tidak ada BOM yang disediakan dalam konsorsium Unicode, dan oleh karena itu menambahkan tanda tangan (tambahan tiga byte yang paling terkenal ini ke awal dokumen) hanya mencegah beberapa program membaca kode. Oleh karena itu, ketika menyimpan file dalam UTF, kita harus selalu memilih opsi tanpa BOM (tanpa tanda tangan). Jadi kamu maju lindungi diri Anda dari merangkak krakozyabry.

Hebatnya, beberapa program di Windows tidak tahu bagaimana melakukan ini (mereka tidak dapat menyimpan teks dalam UTF-8 tanpa BOM), misalnya, Notepad Windows yang sama terkenalnya. Ini menyimpan dokumen dalam UTF-8, tetapi masih menambahkan tanda tangan (tiga byte tambahan) di awal. Selain itu, byte ini akan selalu sama - baca kode secara berurutan. Tetapi di server, karena hal kecil ini, masalah mungkin muncul - krakozyabry akan keluar.

Oleh karena itu, tidak berarti jangan gunakan notepad Windows biasa untuk mengedit dokumen situs Anda, jika Anda tidak ingin tampilan krakozyabrov. Saya menganggap editor Notepad ++ yang telah disebutkan sebagai opsi terbaik dan paling sederhana, yang praktis tidak memiliki kekurangan dan hanya terdiri dari kelebihan.

Di Notepad++, saat Anda memilih penyandian, Anda akan memiliki opsi untuk mengonversi teks ke penyandian UCS-2, yang secara inheren sangat dekat dengan standar Unicode. Juga di Notepad dimungkinkan untuk menyandikan teks dalam ANSI, mis. dalam kaitannya dengan bahasa Rusia, ini adalah Windows 1251, yang telah kami jelaskan sedikit di atas. Dari mana informasi ini berasal?

Itu ditulis dalam registri sistem operasi Windows Anda - pengkodean mana yang harus dipilih dalam kasus ANSI, yang mana untuk dipilih dalam kasus OEM (untuk bahasa Rusia akan menjadi CP866). Jika Anda menginstal bahasa default lain di komputer Anda, maka penyandian ini akan diganti dengan yang serupa dari kategori ANSI atau OEM untuk bahasa yang sama.

Setelah Anda menyimpan dokumen di Notepad ++ dalam pengkodean yang Anda butuhkan atau membuka dokumen dari situs untuk diedit, Anda dapat melihat namanya di sudut kanan bawah editor:

Untuk menghindari krakozyabrov, selain tindakan yang dijelaskan di atas, akan berguna untuk menulis informasi tentang pengkodean ini di header kode sumber semua halaman situs sehingga tidak ada kebingungan di server atau host lokal.

Secara umum, di semua bahasa markup hypertext kecuali Html, deklarasi xml khusus digunakan, yang menentukan pengkodean teks.

Sebelum mengurai kode, browser mengetahui versi mana yang digunakan dan bagaimana tepatnya kode karakter bahasa itu harus ditafsirkan. Namun yang perlu diperhatikan, jika Anda menyimpan dokumen dalam unicode default, maka deklarasi xml ini dapat dihilangkan (pengkodean akan dianggap UTF-8 jika tidak ada BOM atau UTF-16 jika ada BOM).

Dalam kasus dokumen bahasa HTML, pengkodean digunakan untuk menentukan elemen meta, yang ditulis di antara tag Head pembuka dan penutup:

... ...

Entri ini sangat berbeda dari yang ada di , tetapi sepenuhnya sesuai dengan standar HTML 5 baru yang diperkenalkan secara perlahan, dan akan 100% dipahami dengan benar oleh semua browser yang sedang digunakan.

Secara teori, elemen Meta dengan pengkodean HTML dokumen akan lebih baik untuk diletakkan setinggi mungkin di header dokumen sehingga pada saat bertemu di teks karakter pertama bukan dari basis ANSI (yang akan selalu dibaca dengan benar dan dalam variasi apapun), browser harus sudah memiliki informasi tentang cara menginterpretasikan kode-kode karakter tersebut.

Semoga sukses untuk Anda! Sampai jumpa di situs halaman blog

Anda dapat menonton lebih banyak video dengan membuka
");">

Anda mungkin tertarik

Apa itu URL, apa perbedaan antara tautan absolut dan relatif untuk sebuah situs
OpenServer - server lokal modern dan contoh penggunaannya untuk menginstal WordPress di komputer
Apa itu Chmod, izin apa untuk menetapkan file dan folder (777, 755,666) dan bagaimana melakukannya melalui PHP
Pencarian Yandex di situs dan toko online

Excel untuk Office 365 Word untuk Office 365 Outlook untuk Office 365 PowerPoint untuk Office 365 Publisher untuk Office 365 Excel 2019 Word 2019 Outlook 2019 PowerPoint 2019 OneNote 2016 Publisher 2019 Visio Profesional 2019 Standar Visio 2019 Excel 2016 Word 2016 Outlook 2016 PowerPoint 2016 OneNote 2013 Publisher 2016 Visio 2013 Visio Profesional 2016 Standar Visio 2016 Excel 2013 Word 2013 Outlook 2013 PowerPoint 2013 Publisher 2013 Excel 2010 Word 2010 Outlook 2010 PowerPoint 2010 OneNote 2010 Publisher 2010 Visio 2010 Excel 2007 Word 2007 Outlook 2007 PowerPoint 2007 Publisher 2007 Access 2007 Visio 2007 OneNote Standar Visio 2007 Standar Visio 2010 Lebih sedikit

Dalam artikel ini

Memasukkan karakter ASCII atau Unicode ke dalam dokumen

Jika Anda hanya perlu memasukkan beberapa karakter atau simbol khusus, Anda dapat menggunakan pintasan keyboard atau. Untuk daftar karakter ASCII, lihat tabel berikut atau artikel Menyisipkan alfabet nasional menggunakan pintasan keyboard .

Catatan:

Memasukkan karakter ASCII

Untuk menyisipkan karakter ASCII, tekan dan tahan tombol ALT saat memasukkan kode karakter. Misalnya, untuk menyisipkan simbol derajat (º), tekan dan tahan tombol ALT, lalu masukkan 0176 pada keypad numerik.

Gunakan keypad numerik untuk memasukkan angka, bukan angka pada keyboard utama. Jika Anda perlu memasukkan angka pada keypad numerik, pastikan indikator NUM LOCK menyala.

Memasukkan karakter Unicode

Untuk menyisipkan karakter Unicode, ketik kode karakter, lalu tekan ALT + X secara berurutan. Misalnya, untuk memasukkan karakter dolar ($), ketik 0024 dan tekan ALT + X secara berurutan. Untuk semua kode karakter Unicode, lihat .

Penting: Beberapa program Microsoft Office, seperti PowerPoint dan InfoPath, tidak mendukung konversi kode Unicode menjadi karakter. Jika Anda perlu memasukkan karakter Unicode di salah satu program ini, gunakan .

Catatan:

    Jika karakter Unicode yang salah ditampilkan setelah menekan ALT+X, pilih kode yang benar, lalu tekan ALT+X lagi.

    Selain itu, Anda harus memasukkan "U+" sebelum kode. Misalnya, jika Anda mengetik "1U+B5" dan menekan tombol ALT+X, teks "1µ" akan ditampilkan, dan jika Anda mengetik "1B5" dan menekan tombol ALT+X, karakter "Ƶ" akan ditampilkan.

Menggunakan tabel simbol

Tabel karakter adalah program yang dibangun ke dalam Microsoft Windows yang memungkinkan Anda melihat karakter yang tersedia untuk font yang dipilih.

Menggunakan tabel simbol, Anda dapat menyalin karakter individu atau sekelompok karakter ke clipboard dan menempelkannya ke program apa pun yang mendukung tampilan karakter ini. Membuka tabel simbol

    Di Windows 10 Masukkan kata "simbol" di bidang pencarian di bilah tugas dan pilih tabel simbol dari hasil pencarian.

    Di Windows 8 Masukkan kata "simbol" di layar beranda dan pilih tabel simbol dari hasil pencarian.

    Di Windows 7 tekan tombolnya Awal, pilih secara berurutan Semua program, Standar, Melayani dan klik tabel simbol.

Karakter dikelompokkan berdasarkan font. Klik daftar font untuk memilih set karakter yang sesuai. Untuk memilih simbol, klik simbol tersebut, lalu klik tombol Memilih. Untuk menyisipkan simbol, klik kanan lokasi yang diinginkan dalam dokumen dan pilih Memasukkan.

Kode karakter yang sering digunakan

Untuk daftar lengkap karakter, lihat di komputer, tabel kode karakter ASCII, atau tabel karakter Unicode yang diurutkan menurut kumpulan .

mesin terbang

mesin terbang

Unit moneter

simbol hukum

Simbol matematika

pecahan

Tanda baca dan simbol dialek

Bentuk Simbol

Kode untuk diakritik yang umum digunakan

Untuk daftar lengkap mesin terbang dan kode terkait, lihat .

mesin terbang

mesin terbang

Karakter kontrol ASCII non-cetak

Karakter yang digunakan untuk mengontrol beberapa periferal, seperti printer, diberi nomor 0-31 dalam tabel ASCII. Misalnya, karakter halaman feed/halaman baru sesuai dengan angka 12. Karakter ini memberitahu printer untuk pergi ke awal halaman berikutnya.

Tabel karakter kontrol ASCII yang tidak dapat dicetak

Angka desimal

Tanda

Angka desimal

Tanda

Rilis saluran data

Awal tajuk

Kode kontrol perangkat pertama

Awal teks

Kode kontrol perangkat kedua

Akhir teks

Kode kontrol perangkat ketiga

Akhir transmisi

Kode kontrol perangkat keempat

berujung lima

Konfirmasi negatif

Konfirmasi

Mode transfer sinkron

sinyal suara

Akhir dari blok data

Tab horisontal

Akhir media

Umpan baris/baris baru

Karakter pengganti

Tab vertikal

melebihi

Terjemahan Halaman/Halaman Baru

dua belas

Pemisah file

Kereta kembali

Pemisah grup

Shift tanpa menyimpan angka

Pemisah rekaman

Pergeseran pengawetan bit

limabelas

Pemisah data

Unicode (dalam bahasa Inggris Unicode) adalah standar pengkodean karakter. Sederhananya, ini adalah tabel korespondensi karakter teks ( , huruf, elemen tanda baca) ke kode biner. Komputer hanya memahami urutan nol dan satu. Agar tahu persis apa yang harus ditampilkan di layar, perlu untuk menetapkan nomor unik untuk setiap karakter. Pada tahun delapan puluhan, karakter dikodekan dengan satu byte, yaitu, delapan bit (setiap bit adalah 0 atau 1). Jadi, ternyata satu tabel (juga merupakan encoding atau set) hanya dapat menampung 256 karakter. Ini mungkin tidak cukup bahkan untuk satu bahasa. Oleh karena itu, banyak penyandian yang berbeda muncul, kebingungan yang sering menyebabkan fakta bahwa beberapa omong kosong aneh muncul di layar alih-alih teks yang dapat dibaca. Sebuah standar tunggal diperlukan, yang menjadi Unicode. Encoding yang paling sering digunakan - UTF-8 (Unicode Transformation Format) menggunakan 1 hingga 4 byte untuk mewakili karakter.

Simbol

Karakter dalam tabel Unicode diberi nomor dengan angka heksadesimal. Misalnya, huruf kapital Sirilik M adalah U+041C. Ini berarti berdiri di persimpangan garis 041 dan kolom C. Anda cukup menyalinnya dan menempelkannya di suatu tempat. Agar tidak mengobrak-abrik daftar multi-kilometer, Anda harus menggunakan pencarian. Saat Anda membuka halaman karakter, Anda akan melihat nomor Unicode dan cara penulisannya dalam font yang berbeda. Anda juga dapat memasukkan karakter itu sendiri ke dalam bilah pencarian, bahkan jika sebuah kotak digambar, setidaknya untuk mengetahui apa itu. Juga, situs ini memiliki set khusus (dan - acak) dari jenis ikon yang sama, dikumpulkan dari bagian yang berbeda, untuk kemudahan penggunaan.

Standar Unicode bersifat internasional. Ini mencakup tanda-tanda hampir semua skrip dunia. Termasuk yang sudah tidak terpakai. Hieroglif Mesir, rune Jerman, tulisan Maya, cuneiform dan alfabet negara kuno. Penunjukan ukuran dan bobot, notasi musik, dan konsep matematika juga disajikan.

Konsorsium Unicode sendiri tidak menciptakan karakter baru. Ikon-ikon yang menemukan aplikasinya di masyarakat ditambahkan ke tabel. Misalnya, tanda rubel aktif digunakan selama enam tahun sebelum ditambahkan ke Unicode. Ikon emoji (emotikon) juga pertama kali digunakan secara luas di Jepang sebelum disertakan dalam pengkodean. Tetapi merek dagang dan logo perusahaan pada prinsipnya tidak ditambahkan. Bahkan biasa seperti apel Apple atau bendera Windows. Sampai saat ini, sekitar 120.000 karakter telah dikodekan dalam versi 8.0.

Seperti yang Anda ketahui, komputer menyimpan informasi dalam bentuk biner, mewakilinya sebagai urutan satu dan nol. Untuk menerjemahkan informasi ke dalam bentuk yang nyaman untuk persepsi manusia, setiap urutan digit yang unik diganti dengan karakter yang sesuai saat ditampilkan.

Salah satu sistem untuk mengkorelasikan kode biner dengan karakter cetak dan karakter kontrol adalah

Dengan tingkat perkembangan teknologi komputer saat ini, pengguna tidak diharuskan untuk mengetahui kode dari setiap karakter tertentu. Namun, pemahaman umum tentang bagaimana pengkodean dilakukan sangat berguna, dan untuk beberapa kategori spesialis bahkan diperlukan.

Pembuatan ASCII

Dalam bentuk aslinya, pengkodean dikembangkan pada tahun 1963 dan kemudian diperbarui dua kali selama 25 tahun.

Dalam versi asli, tabel karakter ASCII menyertakan 128 karakter, kemudian versi yang diperluas muncul, di mana 128 karakter pertama disimpan, dan karakter yang sebelumnya hilang ditugaskan ke kode dengan bit kedelapan yang terlibat.

Selama bertahun-tahun, pengkodean ini telah menjadi yang paling populer di dunia. Pada tahun 2006, Latin 1252 memimpin, dan dari akhir 2007 hingga saat ini, Unicode dengan kuat memegang posisi terdepan.

Representasi komputer ASCII

Setiap karakter ASCII memiliki kode sendiri, terdiri dari 8 karakter yang mewakili nol atau satu. Jumlah minimum dalam representasi ini adalah nol (delapan nol dalam biner), yang merupakan kode untuk elemen pertama dalam tabel.

Dua kode dalam tabel telah disisihkan untuk beralih antara standar US-ASCII dan varian nasionalnya.

Setelah ASCII mulai memasukkan bukan 128, tetapi 256 karakter, varian pengkodean tersebar luas, di mana versi asli tabel disimpan dalam 128 kode pertama dengan nol bit ke-8. Tanda-tanda tulisan nasional disimpan di bagian atas tabel (posisi 128-255).

Pengguna tidak perlu mengetahui kode karakter ASCII secara langsung. Biasanya cukup bagi pengembang perangkat lunak untuk mengetahui jumlah elemen dalam tabel untuk menghitung kodenya, jika perlu, menggunakan sistem biner.

bahasa Rusia

Setelah pengembangan pengkodean untuk bahasa Skandinavia, Cina, Korea, Yunani, dll. di awal 70-an, Uni Soviet juga membuat versinya sendiri. Segera, versi pengkodean 8-bit yang disebut KOI8 dikembangkan, yang mempertahankan 128 kode karakter ASCII pertama dan mengalokasikan jumlah posisi yang sama untuk huruf alfabet nasional dan karakter tambahan.

Sebelum pengenalan Unicode, KOI8 mendominasi segmen Internet Rusia. Ada opsi penyandian untuk alfabet Rusia dan Ukraina.

masalah ASCII

Karena jumlah elemen bahkan dalam tabel yang diperluas tidak melebihi 256, tidak ada kemungkinan untuk menampung beberapa skrip yang berbeda menjadi satu penyandian. Pada tahun 90-an, masalah "crocozyabr" muncul di Runet, ketika teks yang diketik dalam karakter ASCII Rusia ditampilkan secara tidak benar.

Masalahnya adalah ketidakcocokan antara varian ASCII yang berbeda. Ingat bahwa posisi 128-255 dapat berisi karakter yang berbeda, dan ketika mengubah dari satu pengkodean Cyrillic ke yang lain, semua huruf teks digantikan oleh yang lain yang memiliki nomor identik dalam versi pengkodean yang berbeda.

Kondisi saat ini

Dengan munculnya Unicode, popularitas ASCII menurun tajam.

Alasan untuk ini terletak pada kenyataan bahwa pengkodean baru memungkinkan untuk mengakomodasi karakter dari hampir semua bahasa tertulis. Dalam hal ini, 128 karakter ASCII pertama sesuai dengan karakter yang sama di Unicode.

Pada tahun 2000, ASCII adalah pengkodean paling populer di Internet dan digunakan pada 60% halaman web yang diindeks oleh Google. Pada 2012, pangsa halaman tersebut turun menjadi 17%, dan Unicode (UTF-8) menggantikan pengkodean paling populer.

Dengan demikian, ASCII merupakan bagian penting dari sejarah teknologi informasi, tetapi penggunaannya di masa depan dipandang tidak menjanjikan.