Pengkodean unicode 2. Prasyarat untuk pembuatan dan pengembangan unicode

Halo para pembaca situs blog yang terhormat. Hari ini kami akan berbicara dengan Anda tentang dari mana krakozyabrs 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 konsorsium Unicode UTF 16 dan 8.

Bagi sebagian orang, informasi ini mungkin tampak berlebihan, tetapi Anda akan tahu berapa banyak pertanyaan yang saya terima sehubungan dengan krakozyabrov yang dirayapi (bukan kumpulan karakter yang dapat dibaca). Sekarang saya akan memiliki kesempatan untuk merujuk semua orang ke teks artikel ini dan secara mandiri menemukan kusen saya. Nah, bersiaplah menyerap informasi dan coba ikuti ceritanya.

ASCII - pengkodean teks dasar untuk alfabet Latin

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

Tapi tetap saja, titik awal untuk pengembangan pengkodean teks modern adalah 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 128 karakter yang dijelaskan dalam ASCII ini menyertakan beberapa simbol layanan seperti tanda kurung, garis hash, tanda bintang, dll. Sebenarnya, Anda sendiri dapat melihatnya:

Ini adalah 128 karakter dari versi ASCII asli yang 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), oleh karena itu, setelah versi dasar Asuka muncul di seluruh seri pengkodean ASCII yang diperluas, di mana, selain 128 karakter dasar, 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 semua tahu, komputer hanya bekerja dengan angka dalam sistem biner, yaitu dengan nol dan satu ("Aljabar Boolean", jika seseorang pergi ke perguruan tinggi atau sekolah). , yang masing-masing adalah 2 dalam kekuatan, mulai dari nol, dan hingga dua di ketujuh:

Tidak sulit untuk memahami bahwa hanya ada 256 kemungkinan kombinasi nol dan satu dalam konstruksi seperti itu.Cukup sederhana untuk mengubah angka dari sistem biner ke desimal. Anda hanya perlu menjumlahkan semua kekuatan dari dua di atas yang 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 in sistem desimal perhitungan. 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 dengan angka heksadesimal 2A di Asuka. Anda mungkin tahu itu di sistem heksadesimal Selain angka arab, angka tersebut juga menggunakan huruf latin dari A (berarti sepuluh) sampai dengan F (berarti lima belas).

Nah, untuk terjemahan bilangan biner ke heksadesimal gunakan metode sederhana dan intuitif berikut ini. 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 (dua pangkat empat) yang dapat dikodekan dalam biner, 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 beberapa 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, 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 sesuatu yang lain di sana, tetapi dalam versi yang diperluas menjadi mungkin untuk menggunakan semua 256 nilai yang dapat dikodekan dalam satu byte informasi. Itu. menjadi mungkin untuk menambahkan simbol huruf bahasa Anda ke Aski.

Di sini perlu menyimpang sekali lagi untuk mengklarifikasi - mengapa kita membutuhkan penyandian sama sekali teks dan mengapa itu sangat penting. Simbol pada 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 simbol yang perlu dimasukkan ke tempat yang tepat.

Jelas bahwa font itu sendiri bertanggung jawab atas bentuk vektor, 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 di file yang diinginkan font yang terhubung untuk menampilkan dokumen teks ini. Semuanya sederhana dan basi.

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 di satu byte. Oleh karena itu, ada banyak pilihan seperti itu. Ada beberapa varietas Asuka yang diperluas hanya untuk pengkodean karakter bahasa Rusia.

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

Itu. bagian atasnya sepenuhnya bertepatan dengan versi dasar Asuka (128 karakter Latin, angka, dan omong kosong lainnya), yang disajikan pada tangkapan layar tepat di atas, tetapi sudah bagian bawah tabel dengan pengkodean CP866 memiliki tampilan yang ditunjukkan pada tangkapan layar tepat di bawah dan diizinkan untuk mengkodekan 128 tanda lainnya (huruf Rusia dan semua jenis grafik semu):

Soalnya, di kolom kanan, angkanya dimulai dengan 8, karena angka 0 hingga 7 merujuk ke bagian ASCII dasar (lihat tangkapan layar pertama). Itu. huruf Rusia "M" di CP866 akan memiliki kode 9C (terletak di persimpangan garis yang sesuai dengan 9 dan kolom dengan angka C dalam notasi 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? Intinya adalah bahwa pengkodean untuk teks Rusia ini dikembangkan kembali pada tahun-tahun berbulu itu, ketika tidak ada penyebaran sistem operasi grafis seperti sekarang. Dan di Dos, dan sistem operasi teks serupa, pseudo-grafik memungkinkan untuk mendiversifikasi desain teks dan oleh karena itu CP866 dan semua rekan lainnya dari kategori versi diperpanjang Asuka berlimpah di dalamnya.

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

Prinsip operasinya tetap sama dengan CP866 yang dijelaskan sedikit sebelumnya - setiap karakter teks dikodekan dengan satu byte tunggal. Tangkapan layar menunjukkan paruh kedua tabel KOI8-R, karena babak pertama benar-benar konsisten 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 yang mereka lakukan 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 karakter Latin dengan membuang hanya satu bit (dua pangkat tujuh atau 128).

Windows 1251 - versi modern ASCII dan mengapa krakozyabry keluar

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

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

Ini sangat berbeda dari CP866 dan KOI8-R yang digunakan sebelumnya di mana tempat simbol pseudo-grafis di dalamnya diambil oleh simbol tipografi Rusia yang hilang (kecuali untuk tanda aksen), serta simbol yang digunakan dalam bahasa Slavia. dekat dengan Rusia (Ukraina, Belarusia, dll.)):

Karena banyaknya pengkodean bahasa Rusia, produsen dan produsen font perangkat lunak Saya terus-menerus sakit kepala, dan Anda dan saya, para pembaca yang budiman, sering kali keluar dari orang-orang terkenal itu krakozyabry ketika ada kebingungan dengan versi yang digunakan dalam teks.

Sangat sering mereka keluar saat mengirim dan menerima pesan melalui surel, yang memerlukan pembuatan tabel konversi yang sangat kompleks, yang, pada kenyataannya, tidak dapat memecahkan masalah ini secara mendasar, dan sering kali pengguna korespondensi digunakan untuk menghindari krakozyabrs yang terkenal saat menggunakan pengkodean Rusia seperti CP866, KOI8-R atau Windows 1251.

Faktanya, krakozyabry, yang merangkak keluar alih-alih teks Rusia, adalah hasilnya penyalahgunaan pengkodean bahasa ini yang tidak cocok dengan yang dikodekan pesan teks mulanya.

Katakanlah jika karakter yang dikodekan dengan CP866 coba ditampilkan menggunakan tabel kode Windows 1251, maka krakozyabry yang sama (kumpulan karakter yang tidak berarti) ini akan keluar, sepenuhnya menggantikan teks pesan.

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

Pada akhirnya, situasi seperti itu dengan banyak penyandian dan krakozyabras yang terus-menerus muncul bosan dengan banyak, ada prasyarat untuk penciptaan variasi universal baru yang akan menggantikan semua yang ada dan akhirnya akan memecahkan akar masalah munculnya teks yang tidak dapat dibaca. . Selain itu, ada masalah bahasa seperti bahasa Cina, di mana karakter bahasa lebih dari 256.

Unicode - Pengkodean UTF universal 8, 16 dan 32

Ribuan karakter dari kelompok bahasa Asia Tenggara ini tidak dapat dijelaskan dalam satu byte informasi, yang dialokasikan untuk pengkodean karakter dalam versi ASCII yang diperluas. Akibatnya, sebuah konsorsium dibuat disebut Unicode(Unicode - Unicode Consortium) dengan kolaborasi banyak pemimpin industri TI (mereka yang memproduksi perangkat lunak, yang mengkode 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 tunggal dalam pengkodean UTF universal yang baru.

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

Tetapi banyak negara dengan bahasa kelompok Eropa tidak perlu menggunakan begitu banyak karakter dalam pengkodean, tetapi ketika UTF-32 digunakan, mereka menerima peningkatan empat kali lipat dalam bobot dokumen teks tanpa biaya, 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 secara default sebagai ruang dasar untuk semua simbol yang kita gunakan. Ini menggunakan dua byte untuk mengkodekan satu karakter. Mari kita lihat bagaimana kasus ini terlihat.

V sistem operasi Windows, Anda dapat mengikuti jalur "Mulai" - "Program" - "Aksesori" - "Alat Sistem" - "Peta Simbol". Akibatnya, tabel dengan bentuk vektor dari semua font yang terpasang di sistem Anda akan terbuka. Jika Anda memilih untuk " Parameter tambahan»Satu set karakter Unicode, Anda akan dapat melihat untuk setiap font secara terpisah seluruh rentang karakter yang disertakan di dalamnya.

Omong-omong, dengan mengklik salah satu dari mereka, Anda dapat melihat dua byte-nya Kode UTF-16 terdiri dari empat digit heksadesimal:

Berapa banyak karakter yang dapat dikodekan dalam UTF-16 dengan 16 bit? 65536 (dua pangkat enam belas), dan angka inilah yang diambil sebagai ruang dasar di Unicode. Selain itu, ada cara untuk menyandikannya dan 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, misalnya, program hanya dalam bahasa Inggris, karena setelah transisi dari versi ASCII yang diperluas ke UTF-16, bobot dokumen berlipat ganda (satu byte per satu karakter di Aski dan dua byte untuk karakter yang sama di UTP-16).

Justru untuk kepuasan semua orang dan segala sesuatu di konsorsium Unicode yang diputuskan untuk dibuat pengkodean panjang variabel... Mereka menyebutnya UTF-8. Meskipun nomor delapan dalam nama, itu benar-benar memiliki panjang variabel, yaitu. setiap karakter dalam teks dapat dikodekan ke dalam urutan satu sampai enam byte.

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

Yang perlu diperhatikan, dalam kasus pengkodean hanya alfabet Latin, bahkan program-program yang tidak mengerti Unicode akan tetap membaca apa yang dikodekan dalam UTF-8. Itu. bagian dasar Asuka baru saja 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 ada satu ruang kode di font... Dan sekarang produsen mereka hanya dapat mengisinya dengan bentuk vektor simbol teks berdasarkan kekuatan dan kemampuan mereka. Sekarang bahkan dalam set.

Dalam "Tabel Karakter" di atas Anda dapat melihat bahwa font yang berbeda mendukung jumlah karakter yang berbeda. Beberapa font kaya Unicode bisa sangat berat. Tetapi sekarang mereka berbeda bukan karena mereka dibuat untuk pengkodean yang berbeda, tetapi karena pabrikan font telah mengisi atau belum mengisi satu ruang kode dengan bentuk vektor tertentu 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 ini, atau kode menggunakan fragmen teks.

Untuk mengedit dan membuat file teks Saya pribadi menggunakan yang sangat bagus, menurut saya. Namun, itu dapat menyoroti sintaks dari ratusan bahasa pemrograman dan markup yang lebih baik, dan juga memiliki kemampuan untuk berkembang menggunakan plugin. Membaca ulasan terperinci program luar biasa ini dari tautan yang disediakan.

Di menu atas Notepad ++ ada item "Pengkodean", di mana Anda akan dapat mengonversi versi yang ada ke versi yang digunakan secara default di situs Anda:

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

Faktanya adalah bahwa ketika pengkodean YUTF-16 dikembangkan, 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 memahami urutan membaca kode, dan ditemukan 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 penambahan tanda tangan (tambahan tiga byte paling terkenal ini ke awal dokumen) hanya mencegah beberapa program membaca kode. Oleh karena itu, ketika menyimpan file ke UTP, kita harus selalu memilih opsi tanpa BOM (tanpa tanda tangan). Jadi kamu maju lindungi diri Anda dari merangkak keluar krakozyabrov.

Yang perlu diperhatikan adalah bahwa beberapa program di Windows tidak dapat melakukan ini (mereka tidak dapat menyimpan teks dalam UTP-8 tanpa BOM), misalnya, Windows Notepad yang terkenal jahat. 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 sepele ini, masalah mungkin muncul - krakozyabry akan keluar.

Jadi tidak berarti jangan gunakan notepad Windows biasa untuk mengedit dokumen situs Anda, jika Anda tidak ingin tampilan krakozyabrs. Opsi terbaik dan paling sederhana, menurut saya, adalah editor Notepad ++ yang telah disebutkan, yang praktis tidak memiliki kekurangan dan hanya memiliki kelebihan.

Di Notepad ++, saat memilih penyandian, Anda akan dapat mengonversi teks ke penyandian UCS-2, yang secara inheren sangat dekat dengan standar Unicode. Juga di Notepad dimungkinkan untuk menyandikan teks dalam ANSI, mis. sehubungan dengan bahasa Rusia itu akan sudah dijelaskan oleh kami tepat di atas Windows 1251. Dari mana informasi ini berasal?

Itu terdaftar di registri ruang operasi Anda. Sistem Windows- 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 yang berbeda di komputer Anda, maka penyandian ini akan diganti dengan yang serupa dari kategori ANSI atau OEM untuk bahasa yang sama.

Setelah Anda menyimpan dokumen dalam pengkodean yang Anda butuhkan di Notepad ++ 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 menunjukkan pengkodean teks.

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

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

... ...

Entri ini sangat berbeda dari yang diadopsi, tetapi sepenuhnya sesuai dengan standar HTML 5 baru yang diperkenalkan secara diam-diam, dan akan 100% dipahami dengan benar oleh siapa saja yang digunakan di saat ini browser.

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

Semoga sukses untuk Anda! Sampai jumpa di halaman situs blog

Anda mungkin tertarik

Apa yang terjadi alamat URL apa perbedaan antara tautan absolut dan relatif untuk situs?
OpenServer - modern server lokal dan contoh penggunaannya untuk Instalasi 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

Saat mencoba mengonfigurasi satu atau beberapa fungsi Internet, setiap pengguna mungkin menemukan konsep seperti "Unicode". Untuk mengetahui apa arti konsep ini, baca artikel ini untuk mengakhiri.

Unicode: definisi

Istilah "Unicode" hari ini berarti standar pengkodean karakter. Standar ini diusulkan pada tahun 1991 oleh organisasi nirlaba Unicode Inc. Standar Unicode dirancang untuk menggabungkan sejumlah besar karakter yang berbeda dalam satu dokumen. Halaman yang dibuat berdasarkan pengkodean semacam itu dapat berisi hieroglif, huruf, dan simbol matematika. Dalam pengkodean ini, semua karakter ditampilkan tanpa masalah.

"Unicode": alasan pembuatan

Jauh sebelum munculnya sistem Unicode, pengkodean dipilih berdasarkan preferensi penulis dokumen. Seringkali karena alasan ini, untuk membaca satu dokumen, perlu menggunakan tabel yang berbeda. Namun, ini harus dilakukan beberapa kali. Ini membuat hidup jauh lebih sulit bagi pengguna biasa. Seperti disebutkan sebelumnya, pada tahun 1991, organisasi nirlaba Unicode Inc. diusulkan untuk menggunakan jenis baru pengkodean informasi. Tipe ini coding diciptakan untuk menggabungkan berbagai standar. Pengkodean Unicode memungkinkan untuk mencapai hal yang mustahil: untuk membuat alat yang mendukung berbagai macam karakter. Hasil yang diperoleh melebihi harapan: kami mendapatkan dokumen yang secara bersamaan dapat berisi teks Rusia dan Inggris, serta ekspresi matematika dan Latin. Sebelum membuat sistem terpadu pengembang pengkodean harus memecahkan sejumlah masalah yang timbul dari keberadaan sejumlah besar standar yang sudah ada di saat ini... Masalah yang paling umum adalah kumpulan karakter yang terbatas, penulisan elf, font duplikat, dan masalah konversi pengkodean yang berbeda.

"Unicode": tamasya ke dalam sejarah

Bayangkan gambar berikut ini: di pelataran tahun 80-an, teknologi komputer belum begitu meluas dan memiliki bentuk yang berbeda dengan saat ini. Setiap sistem operasi unik dengan caranya sendiri dan dimodifikasi oleh para penggemar untuk kebutuhan spesifik tertentu. Akibatnya, kebutuhan untuk pertukaran informasi menyebabkan perbaikan tambahan. Saat mencoba membaca dokumen yang dibuat di sistem operasi lain, layar biasanya menampilkan rangkaian karakter yang tidak dapat dipahami. Ini membutuhkan pekerjaan lebih lanjut dengan pengkodean, yang tidak selalu dapat dilakukan dengan cepat. Terkadang butuh beberapa bulan untuk memproses dokumen yang diperlukan. Pengguna yang sering harus bertukar informasi mulai membuat tabel konversi khusus untuk diri mereka sendiri. Bekerja dengan tabel seperti itu mengungkapkan satu fitur menarik: perlu untuk membuat tabel seperti itu secara bersamaan dalam dua arah. Mesin tidak dapat melakukan inversi komputasi yang biasa. Untuk itu, file sumbernya ditulis di kolom kanan, dan hasilnya di kolom kiri. Sebaliknya, mereka tidak dapat diatur ulang. Jika perlu menggunakan beberapa karakter khusus dalam dokumen, pertama-tama mereka harus ditambahkan, dan kemudian juga perlu menjelaskan kepada pengguna lain apa yang perlu dilakukan dengan mereka agar tidak berubah menjadi "kryakozyabry". Juga harus diingat bahwa Anda harus mengembangkan font Anda sendiri untuk setiap penyandian. Ini menyebabkan terciptanya sejumlah besar duplikat di sistem operasi. Jadi, misalnya, pada satu halaman pengguna dapat melihat selusin font yang identik dengan Times New Roman standar, tetapi ditandai dengan UCS-2, UTF-16, UTF-8, ANSI. Dengan demikian, ada kebutuhan untuk mengembangkan standar universal.

Unicode: pencipta

Awal dari sejarah penciptaan "Unicode" dapat dikaitkan dengan tahun 1987. Saat itulah Joe Becker dari Xerox, bersama dengan Mark Davis dan Lee Collins dari Apple, memulai penelitian tentang pengembangan praktis pengkodean universal. Pada tahun 1988, Joe Becker menerbitkan sebuah proyek untuk membuat pengkodean multibahasa internasional. Beberapa bulan kemudian, kelompok kerja untuk pengembangan Unicode diperluas. Ini termasuk ahli seperti Glenn Wright dari Sun Microsystems, Mike Kernegan dan Ken Whistler dari RLG. Ini memungkinkan untuk menyelesaikan pekerjaan pada pembentukan awal standar pengkodean terpadu.

Unicode: deskripsi umum

Pengkodean Unicode didasarkan pada konsep umum simbol. Definisi ini dipahami sebagai fenomena abstrak yang ada dalam bentuk tulisan, yang diwujudkan melalui grafem. Di Unicode, setiap karakter dikaitkan dengan kode unik yang dimiliki oleh satu atau beberapa blok standar. Jadi, misalnya, grafem "B" hadir dalam bahasa Inggris dan Rusia, tetapi itu sesuai dengan dua simbol yang berbeda. Karakter ini juga dapat diubah menjadi huruf kecil. Ini berarti bahwa masing-masing simbol ini dijelaskan oleh kunci, satu set properti, dan nama.

Unicode: Manfaat

Ini berbeda dari sistem pengkodean modern lainnya "Unicode" dengan pasokan besar karakter untuk "enkripsi" berbagai karakter. Masalahnya adalah pengkodean sebelumnya hanya memiliki 8 bit. Ini berarti mereka hanya mendukung 28 karakter. Perkembangan baru memiliki 216 karakter, yang merupakan langkah maju yang besar. Dengan demikian, menjadi mungkin untuk menyandikan hampir semua huruf yang ada. Kebutuhan untuk menggunakan tabel konversi dengan munculnya "Unicode" telah hilang. Kehadiran standar tunggal hanya mengurangi kegunaannya menjadi nol. Pada saat yang sama, "kryakozyabry" juga menghilang. Munculnya standar baru membuat keberadaan mereka menjadi tidak mungkin. Kebutuhan untuk membuat font duplikat juga dihilangkan.

Unicode: pengembangan

Terlepas dari kenyataan bahwa kemajuan tidak berhenti, pengkodean Unicode terus memegang posisi terdepan di dunia. Ini menjadi mungkin sebagian besar karena fakta bahwa itu menjadi mudah untuk diterapkan dan menjadi tersebar luas. Namun, orang tidak boleh berasumsi bahwa penyandian Unicode yang sama digunakan hari ini seperti 25 tahun yang lalu. Versi 5.x.x digunakan saat ini. Jumlah karakter yang dikodekan telah meningkat menjadi 231. Sejak diluncurkan hingga rilis versi 2.0.0, pengkodean Unicode telah hampir dua kali lipat jumlah karakter yang disertakan di dalamnya. Pada tahun-tahun berikutnya, pertumbuhan peluang ini terus berlanjut. Pada saat versi 4.0.0 muncul, menjadi perlu untuk meningkatkan standar itu sendiri. Akibatnya, pengkodean Unicode memperoleh bentuk yang kita kenal sekarang.

Apa lagi yang berguna di Unicode? Selain jumlah karakter yang besar dan terus bertambah, pengkodean Unicode memiliki satu fitur yang cukup berguna. Ini adalah normalisasi. Pengkodean tidak menyia-nyiakan sumber daya komputer untuk pemeriksaan rutin terhadap karakter yang sama, yang mungkin memiliki ejaan yang sama dalam abjad yang berbeda. Untuk tujuan ini, algoritme khusus digunakan, yang memungkinkan untuk merender simbol serupa secara terpisah dalam grafik dan merujuknya, dan tidak memeriksa semua informasi setiap saat. Secara total, empat algoritma tersebut telah dikembangkan dan diimplementasikan. Transformasi di masing-masing dilakukan sesuai dengan prinsip tertentu yang berbeda dari yang lain.

Setiap pengguna Internet, yang mencoba mengonfigurasi satu atau lain fungsinya, setidaknya sekali melihat kata tertulis "Unicode" di layar. Anda akan mengetahui apa itu dengan membaca artikel ini.

Definisi

Pengkodean unicode adalah standar pengkodean karakter. Itu ditawarkan oleh organisasi nirlaba Unicode Inc. pada tahun 1991. Standar ini dirancang untuk menggabungkan sebanyak mungkin jenis karakter yang berbeda dalam satu dokumen. Halaman yang dibuat berdasarkan itu mungkin berisi huruf dan hieroglif dari berbagai bahasa (dari Rusia ke Korea) dan tanda matematika. Dalam hal ini, semua karakter dalam penyandian ini ditampilkan tanpa masalah.

Alasan penciptaan

Dahulu kala, jauh sebelum munculnya sistem terpadu "Unicode", pengkodean dipilih berdasarkan preferensi penulis dokumen. Untuk alasan ini, seringkali, untuk membaca satu dokumen, Anda harus menggunakan tabel yang berbeda... Terkadang ini harus dilakukan beberapa kali, yang secara signifikan memperumit kehidupan pengguna biasa. Seperti yang telah disebutkan, solusi untuk masalah ini pada tahun 1991 diusulkan oleh organisasi nirlaba Unicode Inc., yang mengusulkan jenis pengkodean karakter baru. Itu dimaksudkan untuk menggabungkan standar usang dan beragam. "Unicode" adalah pengkodean yang memungkinkan untuk mencapai hal yang tidak terpikirkan pada saat itu: untuk membuat alat yang mendukung sejumlah besar karakter. Hasilnya melampaui banyak harapan - dokumen muncul secara bersamaan yang berisi teks bahasa Inggris dan Rusia, ekspresi Latin dan matematika.

Tetapi pembuatan kode tunggal didahului oleh kebutuhan untuk menyelesaikan sejumlah masalah yang muncul karena berbagai macam standar yang sudah ada pada saat itu. Yang paling umum adalah:

  • huruf elf, atau "krakozyabry";
  • set karakter terbatas;
  • masalah konversi pengkodean;
  • duplikasi font.

Tamasya sejarah kecil

Bayangkan bahwa itu adalah tahun 80-an. Teknologi komputer belum begitu luas dan memiliki bentuk yang berbeda dengan saat ini. Pada saat itu, setiap OS unik dengan caranya sendiri dan dimodifikasi oleh setiap penggemar untuk kebutuhan spesifik. Kebutuhan akan pertukaran informasi berubah menjadi penyempurnaan tambahan dari segala sesuatu di dunia. Upaya untuk membaca dokumen yang dibuat di bawah OS yang berbeda sering kali menampilkan serangkaian karakter yang tidak dapat dipahami di layar, dan permainan dengan penyandian dimulai. Tidak selalu mungkin untuk melakukan ini dengan cepat, dan terkadang dokumen yang diperlukan dapat dibuka setelah enam bulan, atau bahkan lebih lambat. Orang yang bertukar informasi sering membuat tabel konversi untuk diri mereka sendiri. Dan sekarang pekerjaan pada mereka terungkap detail yang menarik: mereka perlu dibuat dalam dua arah: "dari milikku ke milikmu" dan sebaliknya. Mesin tidak dapat membuat inversi perhitungan yang dangkal, karena di kolom kanan adalah sumbernya, dan di kiri - hasilnya, tetapi tidak sebaliknya. Jika ada kebutuhan untuk menggunakan karakter khusus apa pun dalam dokumen, mereka harus terlebih dahulu ditambahkan, dan kemudian juga menjelaskan kepada mitra apa yang harus dia lakukan agar karakter ini tidak berubah menjadi "krakozyabry". Dan jangan lupa bahwa untuk setiap pengkodean, Anda harus mengembangkan atau mengimplementasikan font Anda sendiri, yang menyebabkan terciptanya sejumlah besar duplikat di OS.

Bayangkan juga bahwa pada halaman font Anda akan melihat 10 Times New Roman identik dengan anotasi kecil: untuk UTF-8, UTF-16, ANSI, UCS-2. Apakah Anda mengerti sekarang bahwa sangat penting untuk mengembangkan standar universal?

"Ayah Pencipta"

Asal usul Unicode dapat ditelusuri kembali ke tahun 1987, ketika Joe Becker dari Xerox, bersama dengan Lee Collins dan Mark Davis dari Apple, memulai penelitian tentang penciptaan praktis set karakter universal. Pada Agustus 1988, Joe Becker menerbitkan rancangan proposal untuk sistem pengkodean multibahasa internasional 16-bit.

Setelah beberapa bulan kelompok kerja Unicode diperluas untuk memasukkan Ken Whistler dan Mike Kernegan dari RLG, Glenn Wright dari Sun Microsystems, dan beberapa lainnya, menyelesaikan pekerjaan awal pada standar pengkodean umum.

gambaran umum

Unicode didasarkan pada konsep karakter. Definisi ini dipahami sebagai fenomena abstrak yang ada dalam bentuk tulisan tertentu dan diwujudkan melalui grafem ("potret" mereka). Setiap karakter ditentukan dalam "Unicode" oleh kode unik milik blok standar tertentu. Misalnya, ada grafem B dalam abjad Inggris dan Rusia, tetapi di Unicode itu sesuai dengan 2 karakter yang berbeda. Transformasi diterapkan pada mereka, yaitu, masing-masing dijelaskan oleh kunci database, satu set properti, dan nama lengkap.

Manfaat Unicode

Pengkodean Unicode berbeda dari yang lain sezaman dengan pasokan besar karakter untuk "mengenkripsi" karakter. Faktanya adalah bahwa pendahulunya memiliki 8 bit, yaitu, mereka mendukung 28 karakter, tetapi pengembangan baru sudah memiliki 216 karakter, yang merupakan langkah maju yang besar. Ini memungkinkan untuk menyandikan hampir semua alfabet yang ada dan umum.

Dengan munculnya "Unicode" tidak perlu menggunakan tabel konversi: bagaimana standar seragam dia hanya meniadakan kebutuhan mereka. Demikian juga, "krakozyabry" telah dilupakan - standar tunggal membuatnya tidak mungkin, serta menghilangkan kebutuhan untuk membuat font duplikat.

Pengembangan Unicode

Tentu saja, kemajuan tidak berhenti, dan 25 tahun telah berlalu sejak presentasi pertama. Namun, pengkodean Unicode dengan keras kepala mempertahankan posisinya di dunia. Dalam banyak hal, ini menjadi mungkin karena fakta bahwa itu menjadi mudah diimplementasikan dan tersebar luas, diakui sebagai pengembang perangkat lunak berpemilik (berbayar) dan sumber terbuka.

Pada saat yang sama, orang tidak boleh berasumsi bahwa hari ini penyandian Unicode yang sama tersedia bagi kita seperempat abad yang lalu. Saat ini, versinya telah berubah menjadi 5.х.х, dan jumlah karakter yang dikodekan telah meningkat menjadi 231. Kemampuan untuk menggunakan persediaan karakter yang lebih besar ditinggalkan untuk tetap mempertahankan dukungan untuk Unicode-16 (pengkodean di mana jumlah karakter maksimum dibatasi hingga 216). Sejak awal dan hingga versi 2.0.0, "Unicode Standard" memiliki hampir dua kali lipat jumlah karakter yang dikandungnya. Pertumbuhan peluang berlanjut di tahun-tahun berikutnya. Dengan versi 4.0.0, ada kebutuhan untuk meningkatkan standar itu sendiri, yang dilakukan. Akibatnya, "Unicode" memperoleh bentuk yang kita kenal sekarang.

Apa lagi yang ada di Unicode?

Selain jumlah simbol yang besar dan terus bertambah, ia memiliki fitur lain yang berguna. Inilah yang disebut normalisasi. Alih-alih menggulir seluruh dokumen karakter demi karakter dan mengganti ikon yang sesuai dari tabel pencarian, salah satu algoritma normalisasi yang ada digunakan. Apa yang kita bicarakan?

Alih-alih membuang-buang sumber daya komputasi untuk pemeriksaan rutin simbol yang sama, yang mungkin serupa dalam abjad yang berbeda, algoritma khusus digunakan. Ini memungkinkan Anda untuk mengambil karakter serupa di kolom terpisah dari tabel substitusi dan merujuknya, daripada memeriksa ulang semua data berulang kali.

Empat algoritma tersebut telah dikembangkan dan diimplementasikan. Di masing-masing dari mereka, transformasi terjadi sesuai dengan prinsip yang didefinisikan secara ketat yang berbeda dari yang lain, oleh karena itu tidak mungkin untuk menyebutkan salah satu dari mereka yang paling efektif. Masing-masing telah dikembangkan untuk kebutuhan spesifik, telah diterapkan dan berhasil digunakan.

Distribusi standar

Selama 25 tahun sejarahnya, pengkodean Unicode mungkin yang paling banyak digunakan di dunia. Program dan halaman web juga disesuaikan dengan standar ini. Fakta bahwa Unicode digunakan saat ini oleh lebih dari 60% sumber daya Internet dapat menunjukkan luasnya aplikasi.

Sekarang Anda tahu kapan standar Unicode muncul. Apa itu, Anda juga tahu dan akan dapat menghargai arti penuh dari penemuan yang dibuat oleh sekelompok spesialis dari Unicode Inc. lebih dari 25 tahun yang lalu.

Situs ini membutuhkan JavaScript untuk berfungsi dengan benar. Harap aktifkan JavaScript di pengaturan browser Anda.

Tabel karakter Unicode

tunjukkan semua
Rentang: 0000-001F: Karakter kontrol C0 0020-007F: Latin Dasar 0080-009F: Karakter kontrol C1 00A0-000FF: Karakter Latin-1 yang diperluas 0100-017F: Latin-A yang Diperluas 0180-024F: Latin-B yang Diperluas 0250-02AF : Kumpulan karakter tambahan dari alfabet fonetik internasional 02B0-02FF: Pengubah karakter diperpanjang yang tidak dapat digabungkan 0300-036F: Diakritik gabungan 0370-03FF: Alfabet Yunani dan Koptik 0400-04FF: Sirilik 0500-052F: Karakter Sirilik Tambahan 0530-058F: Alfabet Armenia 0590 -05FF: Ibrani 0600-06FF: Arab 0700-074F: Suryani 0750-077F: Karakter Arab tambahan 0780-07BF: Tana (Maldivian) 07C0-07FF: Nko 0800-083F: Samaritan 0840-085F: Alfabet Mandean 08A0- 08FF: Kumpulan Karakter A-Extended Arab 0900-097F: Devanagari 0980-09FF: Bengali 0A00-0A7F: Gurmukhi 0A80-0AFF: Gujarati 0B00-0B7F: Oriya 0B80-0BFF: Tamil 0C00-0C7F: Telugu 0C80-0CFF: Kannada 0D00-0D7F: Malayalam 0D80-0DFF: Sinhala 0E00-0E7F: Thai 0E80-0EFF: Lao 0F00-0FFF: Tibet 1000-109F: Myanmar 10A0-10FF: Georgian 1100-11FF: Hangul (aksara Korea) 1200 -137F: Aksara suku kata Ethiopia 1380-139F: Aksara aksara Ethiopia tambahan 13A0-13FF: Aksara Cherokee 1400-167F: Aksara suku kata Kanada 1680-169F: Ogam 16A0-16FF: Skrip rahasia 1700-171F: Tagalog (baybayin ) 1720-173F: Hanunoo 1740-175F: Buhid 1760-177F: Tagbanwa 1780-17FF: Aksara Khmer 1800-18AF: Aksara Mongol Lama 18B0-18FF: Aksara suku kata Kanada yang diperluas 1900-194F: Aksara Limbu 1950-197F: Aksara Thailand le 1980-19DF: Baru ubin alfabet 19E0-19FF: Karakter Khmer 1A00-1A1F: Aksara Bugi (lontara) 1A20-1AAF: Ubin alfabet lama (Tai Tham) 1B00-1B7F: Aksara Bali 1B80-1 BBF: Aksara Sunda 1BC0-1BFF: Aksara Batak 1C00-1C4F: Aksara Lepcha (rong) 1C50-1C7F: Aksara Ol Chiki 1CD0-1CFF: Aksara Veda 1D00-1D7F: Ekstensi fonetik 1D80-1DBF: Ekstensi fonetik tambahan 1DC0-1DFF: Tambahan diakritik yang dapat digabungkan 1E00-1EFF: Ekstensi Latin diperpanjang 1F00-1FFF: Kumpulan karakter Yunani yang diperluas 2000-206F: Tanda baca 2070-209F: Superskrip dan subskrip 20A0-20CF: Simbol mata uang 20D0-20FF: Kombinasi diakritik untuk karakter 2100- 214F: Huruf- Seperti Karakter 2150-218F: Bentuk Numerik 2190-21FF: Panah 2200-22FF: Operator Matematika 2300-23FF: Karakter Teknis Lain-Lain 2400-243F: Ikon Kode Kontrol 2440-245F: Karakter OCR 2460-24FF: Huruf dan Angka Bersarang 2500-257F : Simbol untuk bingkai gambar 2580-259F: Simbol pengisian 25A0-25FF: Bentuk geometris 2600-26FF: Simbol lain-lain 27 00-27BF: Dingbats 27C0-27EF: Miscellaneous Math Symbols-A 27F0-27FF: Miscellaneous Arrows-A 2800-28FF: Braille 2900-297F: Miscellaneous Arrows-B 2980-29FF: Miscellaneous Math Symbols-B 2A00-2AFF: Miscellaneous matematika operator 2B00-2BFF: Macam-macam karakter dan panah 2C00-2C5F: Glagolitic 1AB0-1AFF: Gabungan diakritik (ekstensi A) 1CC0-1CCF: Kumpulan karakter Sunda yang diperluas A9E0-A9FF: Aksara Myanmar (ekstensi B) AAE0-AAFF: Karakter tulisan Meitei yang diperluas set AB30-AB8F: Extended Latin-E AB30-AB6F: Warang-kshiti AB90-ABBF: Tulisan Beria untuk Zaghawa 2C60-2C7F: Extended Latin-C 2C80-2CFF: Alfabet Koptik 2D00-2D2F: Karakter tambahan alfabet Georgia 2D30- 2D7F: Tifinagh 2D80-2DDF: Karakter Ethiopia diperpanjang 2DE0-2DFF: Cyrillic diperpanjang-A 2E00-2E7F: Tanda-tanda tambahan tanda baca 2E80-2EFF: Tombol hieroglif KJK tambahan 2F00-2FDF: Kunci hieroglif kamus Kangxi 2FF0-2FFF: Karakter yang menjelaskan hieroglif 3000-303F: Simbol dan tanda baca CJK 3040-309F: Hiragana 30A0-30FF: Katakana 3100-312F: Zhuoin) 3130- 318F: Chamo digabungkan dengan Hangul 3190-319F: Karakter yang digunakan dalam Cambun 31A0-31BF: Kumpulan karakter bopomofo yang diperluas 31C0-31EF: Sifat CJK 31F0-31FF: Ekstensi fonetik Katakana 3200-32FF: Huruf dan bulan bersarang CJK 3300- 33FF: Kompatibilitas CJK Tanda 3400-4DBF: Hieroglif Terpadu CJK (Ekstensi A) 4DC0-4DFF: Heksagram I Ching 4E00-9FFF: Hieroglif Terpadu CJK A000-A48F: Suku kata dan A490-A4CF: Radikal dan A4D0-A4500 Alfabet AFF: -A63F tulisan Vai A640-A69F: Cyrillic extended-B A6A0-A6FF: Tulisan Bamum A700-A71F: Karakter pitch bending A720-A7FF: Latin extended D A800-A82F: Siloti Nagri A830-A83F: Karakter numerik India A840 A87F: Pi persegi smo Pagba Lama A880-A8DF: Saurashtra A8E0-A8FF: Devanagari set karakter tambahan A900-A92F: Kayah Lee A930-A95F: Rejang A960-A97F: Hangul (ekstensi A) A980-A9DF: Aksara Jawa AA00-AA560 -AA7F: Aksara Myanmar (ekstensi A) AA80-AADF: Skrip Tai Viet AB00-AB2F: Kumpulan karakter skrip Ethiopia (ekstensi A) ABC0-ABFF: Meitei / Manipuri AC00-D7AF: Suku kata Hangul D800-DB7F: Bagian atas pasangan pengganti DB80 -DBFF: Atas bagian dari pasangan pengganti untuk penggunaan pribadi DC00-DFFF: Bagian bawah dari pasangan pengganti E000-F8FF: Area untuk penggunaan pribadi F900-FAFF: Karakter CJK yang kompatibel FB00-FB4F: Representasi alfabet FB50-FDCF: Huruf Arab-A representasi FDF0-FDFF: Bentuk huruf Arab-A FE00-FE0F: Pemilih jenis huruf FE10-FE1F: Bentuk vertikal FE20-FE2F: Menggabungkan bagian FE30-FE4F: Pola kompatibilitas CJK FE50-FE6F: Opsi ukuran kecil FE70-FE FF: Bentuk huruf Arab-B FF00-FFEF: Bentuk setengah lebar dan lebar penuh FFF0-FFFF: Karakter khusus

  • Apa itu Unicode?

    Unicode(eng. Unicode) adalah standar pengkodean karakter universal yang memungkinkan karakter disediakan untuk semua bahasa di dunia.

    Tidak seperti ASCII, satu karakter dikodekan dalam dua byte, yang memungkinkan untuk digunakan 65 536 karakter melawan 256 .

    Seperti yang Anda ketahui, satu byte adalah bilangan bulat dari menggores sebelum 255 ... Pada gilirannya, satu byte terdiri dari delapan bit, yang menyimpan nilai numerik dalam bentuk biner, di mana setiap unit selanjutnya dari bit saat ini adalah dua kali nilai bit sebelumnya. Dengan demikian, dua byte dapat menyimpan nomor dari menggores sebelum 65 535 , yang memungkinkan kita untuk menggunakan 65 536 karakter (nol + 65 535 , nol juga angka, itu bukan apa-apa).

    Karakter Unicode dibagi menjadi beberapa bagian. Pertama 128 karakter mengulang tabel ASCII.

    Keluarga penyandian bertanggung jawab untuk menampilkan karakter. Unicode (Format Transformasi Unicode - UTF). Encoding yang paling terkenal dan banyak digunakan adalah UTF-8.

  • Bagaimana cara menggunakan meja?

    Simbol yang disajikan 16 buah per baris. Dari atas Anda dapat melihat bilangan heksadesimal dari 0 sebelum 16 ... Di sebelah kiri, angka analog dalam bentuk heksadesimal 0 sebelum ff.
    Dengan menghubungkan nomor di sebelah kiri dengan nomor di atas, Anda dapat mengetahui kode karakter. Contoh: huruf bahasa Inggris F terletak di garis 004 , di kolom 6 : 004 + 6 = kode karakter 0046 .

    Namun, Anda cukup mengarahkan kursor ke atas karakter tertentu Lihat tabel untuk kode karakter. Klik simbol untuk menyalinnya, atau kodenya di salah satu format.

    Di kolom pencarian, Anda dapat memasukkan kata kunci pencarian, misalnya: panah, matahari, hati. Atau, Anda dapat menentukan kode karakter dalam format apa pun, misalnya: 1123, 04BC, . Atau simbolnya sendiri, jika ingin mengetahui kode simbolnya.

    Cari berdasarkan kata kunci sedang dalam pengembangan, sehingga mungkin tidak membuahkan hasil. Tetapi banyak simbol populer sudah dapat ditemukan.

Percaya atau tidak, ada format gambar yang terpasang di browser. Format ini memungkinkan Anda memuat gambar sebelum dibutuhkan, menyediakan rendering gambar secara reguler atau layar retina dan memungkinkan Anda menambahkan CSS ke gambar. Oke, itu tidak sepenuhnya benar. Ini bukan rasio aspek, meskipun yang lainnya tetap sama. Dengan menggunakannya, Anda dapat membuat ikon independen resolusi yang tidak memerlukan waktu untuk memuat dan ditata dengan menggunakan CSS.

Apa itu Unicode?

Unicode adalah kemampuan untuk menampilkan huruf dan tanda baca dengan benar dari berbagai bahasa pada satu halaman. Ini sangat berguna: pengguna akan dapat berinteraksi dengan situs Anda di seluruh dunia dan itu akan menunjukkan apa yang Anda inginkan - itu bisa Prancis dengan aksen atau Kanji.

Unicode terus berkembang: sekarang versi 8.0 relevan, di mana ada lebih dari 120 ribu karakter (dalam artikel asli, diterbitkan pada awal 2014, itu tentang versi 6.3 dan 110 ribu karakter).

Selain huruf dan angka, ada simbol dan ikon lain di Unicode. V versi terbaru ini termasuk emoji yang dapat Anda lihat di messenger iOS.

Halaman HTML dibuat dari urutan karakter Unicode dan diubah menjadi byte saat dikirim melalui jaringan. Setiap huruf dan setiap karakter bahasa apa pun memiliki kode uniknya sendiri dan dikodekan saat file disimpan.

Saat menggunakan sistem pengkodean UTF-8, Anda dapat langsung memasukkan karakter Unicode ke dalam teks, tetapi Anda juga dapat menambahkannya ke teks dengan menentukan tautan simbolik digital. Misalnya, ini adalah simbol hati, dan Anda dapat menampilkan simbol itu hanya dengan menambahkan kode ke markup.

Referensi numerik ini dapat ditentukan dalam format desimal atau heksadesimal. Format desimal membutuhkan penambahan huruf x di awal, notasi akan memberikan hati yang sama () seperti opsi sebelumnya. (2665 adalah versi heksadesimal dari 9829).

Jika Anda menambahkan karakter Unicode menggunakan CSS, maka Anda hanya dapat menggunakan nilai hex.

Beberapa karakter Unicode yang paling umum digunakan memiliki nama teks atau singkatan yang lebih mudah diingat daripada kode numerik, seperti ampersand (& - &). Simbol seperti itu disebut mnemonik dalam HTML, daftar lengkap tersedia di Wikipedia.

Mengapa Anda harus menggunakan Unicode?

Pertanyaan bagus, berikut beberapa alasannya:

  1. Untuk menggunakan karakter yang benar dari bahasa yang berbeda.
  2. Untuk mengganti ikon.
  3. Untuk mengganti ikon yang terhubung melalui @ font-face.
  4. Untuk mendefinisikan kelas CSS

Karakter yang valid

Alasan pertama tidak memerlukan tindakan tambahan. Jika HTML disimpan dalam format UTF-8 dan penyandiannya ditransmisikan melalui jaringan sebagai UTF-8, semuanya akan berfungsi sebagaimana mestinya.

Harus. Sayangnya, tidak semua browser dan perangkat mendukung semua karakter Unicode dengan cara yang sama (lebih tepatnya, tidak semua font mendukung rangkaian karakter lengkap). Misalnya, karakter emoji yang baru saja ditambahkan tidak didukung di semua tempat.

Untuk dukungan UTF-8 di HTML5 tambahkan (jika Anda tidak memiliki akses ke pengaturan server, Anda juga harus menambahkan ). Doctype lama menggunakan ( ).

ikon

Alasan kedua untuk menggunakan Unicode adalah kehadirannya jumlah yang besar simbol berguna yang dapat digunakan sebagai ikon. Misalnya, dan.

Kelebihan mereka yang jelas adalah Anda tidak membutuhkannya file tambahan untuk menambahkannya ke halaman, yang berarti situs Anda akan lebih cepat. Anda juga dapat mengubah warnanya atau menambahkan drop shadow menggunakan CSS. Dan dengan menambahkan transisi (transisi css) Anda dapat dengan lancar mengubah warna ikon saat Anda mengarahkan kursor ke atasnya tanpa gambar tambahan.

Katakanlah saya ingin menyertakan indikator peringkat bintang di halaman saya. Saya bisa melakukannya seperti ini:

★ ★ ★ ☆ ☆

Anda mendapatkan hasil berikut:

Tetapi jika Anda kurang beruntung, Anda akan melihat sesuatu seperti ini:

Peringkat yang sama pada BlackBerry 9000

Ini terjadi jika karakter yang digunakan tidak ada di browser atau font perangkat (untungnya, tanda bintang ini didukung dengan sempurna dan lama Ponsel BlackBerry adalah satu-satunya pengecualian di sini).

Jika tidak ada karakter Unicode, sebagai gantinya bisa ada karakter yang berbeda dari kotak kosong (□) hingga berlian dengan tanda tanya (�).

Bagaimana Anda menemukan karakter Unicode yang mungkin cocok untuk desain Anda? Anda dapat mencarinya di situs seperti Unicodinator dengan melihat karakter yang tersedia, tetapi ada juga jalan terbaik... - situs hebat ini memungkinkan Anda menggambar ikon yang Anda cari, dan kemudian menawarkan daftar karakter Unicode yang serupa.

Menggunakan Unicode dengan ikon @ font-face

Jika Anda menggunakan ikon yang terhubung dengan font eksternal melalui @ font-face, karakter Unicode dapat digunakan sebagai pengganti. Dengan cara ini Anda dapat menampilkan karakter Unicode serupa di perangkat atau browser yang tidak mendukung @ font-face:

Di sebelah kiri adalah ikon Font Awesome di Chrome, dan di sebelah kanan adalah pengganti Unicode di Opera Mini.

Banyak @ alat pencocokan font-wajah menggunakan berbagai karakter Unicode dari area penggunaan pribadi. Masalah dengan pendekatan ini adalah jika @ font-face tidak didukung, kode karakter akan diteruskan ke pengguna tanpa arti apa pun.

Bagus untuk membuat set ikon di @ font-face dan memungkinkan Anda memilih karakter Unicode yang sesuai sebagai dasar untuk ikon.

Namun berhati-hatilah - beberapa browser dan perangkat tidak menyukai karakter Unicode individual saat digunakan dengan @ font-face. Masuk akal untuk menguji dukungan karakter Unicode dengan Unify - aplikasi ini akan membantu Anda menentukan seberapa aman menggunakan karakter di set ikon @ font-face.

Dukungan karakter Unicode

Masalah utama dengan menggunakan karakter Unicode sebagai cadangan adalah dukungan yang buruk di pembaca layar (sekali lagi, beberapa informasi tentang ini dapat ditemukan di Unify), jadi penting untuk memilih karakter yang Anda gunakan dengan hati-hati.

Jika ikon Anda hanyalah elemen dekoratif di sebelah label teks yang dapat dibaca oleh pembaca layar, Anda tidak perlu terlalu khawatir. Tetapi jika ikonnya sendiri, ada baiknya menambahkan label teks tersembunyi untuk membantu pengguna pembaca layar. Bahkan jika karakter Unicode dibaca oleh pembaca layar, ada kemungkinan karakter itu akan sangat berbeda dari tujuan yang dimaksudkan. Misalnya, (≡) sebagai ikon hamburger akan dibaca sebagai "identik" oleh VoiceOver di iOS.

Unicode dalam nama kelas CSS

Fakta bahwa Unicode dapat digunakan dalam nama kelas dan lembar gaya telah diketahui sejak 2007. Saat itulah Jonathan Snook menulis tentang penggunaan karakter Unicode di kelas pembantu saat mengetik sudut membulat. Ide ini belum banyak didistribusikan, tetapi perlu diketahui tentang kemungkinan menggunakan Unicode dalam nama kelas (karakter khusus atau Cyrillic).

Pemilihan font

Beberapa font mendukung set lengkap karakter Unicode, jadi pastikan untuk memeriksa karakter yang Anda inginkan saat memilih font.

Banyak ikon di Segoe UI Symbol atau Arial Unicode MS. Font ini tersedia di PC dan Mac; Lucida Grande juga memiliki cukup banyak karakter Unicode. Anda dapat menambahkan font ini ke deklarasi font-family untuk memastikan bahwa jumlah maksimum karakter Unicode tersedia untuk pengguna yang menginstal font ini.

Menentukan Dukungan Unicode

Akan sangat bagus untuk dapat memeriksa keberadaan karakter Unicode tertentu, tetapi tidak ada cara yang dijamin untuk melakukan ini.

Karakter Unicode bisa efektif dengan dukungan. Misalnya, emoji di baris subjek membuatnya menonjol dari yang lain di kotak surat.

Kesimpulan

Artikel ini hanya membahas dasar-dasar Unicode. Saya harap Anda merasa terbantu dalam membantu Anda memahami Unicode dengan lebih baik dan menggunakannya secara efektif.

Daftar tautan

  • (Unicode berbasis @ font-face iconset generator)
  • Shape Catcher (Alat pengenalan karakter Unicode)
  • Unicodinator (tabel karakter Unicode)
  • Unify (Periksa dukungan karakter Unicode di browser)
  • Unitools (Kumpulan alat untuk bekerja dengan Unicode)