Apakah Perbezaan Antara Teks ASCII dan Unicode?

Apakah Perbezaan Antara Teks ASCII dan Unicode?

ASCII dan Unicode adalah kedua-dua standard yang merujuk kepada representasi digital teks, khususnya watak yang membentuk teks. Walau bagaimanapun, kedua-dua piawaian itu sangat berbeza, dengan banyak sifat mencerminkan susunan penciptaan masing-masing.





Amerika lawan Alam Semesta

The American Standard Code for Information Interchange (ASCII), tidak menghairankan, melayani khalayak Amerika, menulis dalam abjad Inggeris. Huruf ini berkaitan dengan huruf yang tidak dapat dilalui, seperti A-Z dan a-z, ditambah sebilangan kecil simbol tanda baca dan watak kawalan.





Khususnya, tidak ada cara untuk mewakili kata pinjaman yang digunakan dari bahasa lain, seperti kopi dalam ASCII, tanpa mengisinya dengan menggantikan watak beraksen (mis., kafe ). Sambungan ASCII yang dilokalkan dikembangkan untuk memenuhi keperluan pelbagai bahasa, tetapi usaha ini menjadikan interoperabiliti canggung dan jelas meningkatkan kemampuan ASCII.





Sebaliknya, Set Kod Berkod Universal (Unicode) terletak di hujung skala ambisi yang bertentangan. Unicode berusaha memenuhi sebanyak mungkin sistem tulisan dunia, sehingga merangkumi bahasa kuno dan kumpulan simbol ekspresif kegemaran semua orang, emoji.

Set Karakter atau Pengekodan Karakter?

Secara sederhana, kumpulan watak adalah pilihan watak (mis., A-Z) sementara pengekodan watak adalah pemetaan antara set watak dan nilai yang dapat diwakili secara digital (mis., A = 1, B = 2).



Piawaian ASCII berkesan: kedua-duanya menentukan kumpulan watak yang diwakilinya dan kaedah pemetaan setiap watak dengan nilai berangka.

Sebaliknya, kata Unicode digunakan dalam beberapa konteks yang berbeza untuk bermaksud perkara yang berbeza. Anda boleh menganggapnya sebagai istilah yang merangkumi semua, seperti ASCII, untuk merujuk kepada set watak dan sebilangan pengekodan. Tetapi, kerana terdapat beberapa pengekodan, istilah Unicode sering digunakan untuk merujuk pada keseluruhan karakter, dan bukan bagaimana mereka dipetakan.





Saiz

Oleh kerana skopnya, Unicode mewakili lebih banyak watak daripada ASCII. Standard ASCII menggunakan julat 7-bit untuk mengekod 128 berbeza watak . Unicode, sebaliknya, begitu besar sehingga kita perlu menggunakan istilah yang berbeza hanya untuk membincangkannya!

Unicode memenuhi 1,111,998 yang dapat dialamatkan titik kod. Titik kod kira-kira serupa dengan ruang yang disediakan untuk watak, tetapi situasinya jauh lebih rumit daripada ketika anda mula menyelidiki perinciannya!





Perbandingan yang lebih berguna ialah berapa banyak skrip (atau sistem penulisan) yang kini disokong. Sudah tentu, ASCII hanya mengendalikan abjad Inggeris, pada asasnya tulisan Latin atau Rom. Versi Unicode yang dihasilkan pada tahun 2020 semakin jauh: ia merangkumi sokongan untuk sejumlah 154 skrip.

Penyimpanan

Julat 7-bit ASCII bermaksud bahawa setiap watak disimpan dalam satu bait 8-bit; bit ganti tidak digunakan dalam standard ASCII. Ini menjadikan pengiraan ukuran sepele: panjang teks, dalam aksara, adalah ukuran fail dalam bait.

Anda boleh mengesahkannya dengan urutan perintah bash berikut. Pertama, kami membuat fail yang mengandungi 12 huruf teks:

wifi disambungkan tetapi tiada tingkap internet 10
$ echo -n 'Hello, world' > foo

Untuk memastikan bahawa teks dalam pengekodan ASCII, kita dapat menggunakan fail arahan:

$ file foo
foo: ASCII text, with no line terminators

Akhirnya, untuk mendapatkan bilangan bait yang tepat diisi oleh fail, kami menggunakan negeri arahan:

$ stat -f%z foo
12

Oleh kerana standard Unicode berurusan dengan pelbagai watak yang jauh lebih besar, fail Unicode secara semula jadi memerlukan lebih banyak ruang penyimpanan. Tepat berapa banyak bergantung pada pengekodan.

Mengulangi set perintah yang sama dari sebelumnya, menggunakan watak yang tidak dapat ditunjukkan dalam ASCII, memberikan yang berikut:

$ echo -n '€' > foo
$ file foo
foo: UTF-8 Unicode text, with no line terminators
$ stat -f%z foo
3

Watak tunggal itu menempati 3 bait dalam fail Unicode. Perhatikan bahawa bash secara automatik membuat fail UTF-8 kerana fail ASCII tidak dapat menyimpan watak yang dipilih (€). UTF-8 adalah pengekodan watak yang paling biasa untuk Unicode; UTF-16 dan UTF-32 adalah dua pengekodan alternatif, tetapi ia digunakan lebih sedikit.

UTF-8 adalah pengekodan lebar berubah, yang bermaksud ia menggunakan jumlah penyimpanan yang berbeza untuk titik kod yang berbeza. Setiap titik kod akan menempati antara satu dan empat bait, dengan maksud bahawa watak yang lebih umum memerlukan lebih sedikit ruang, memberikan jenis pemampatan terbina dalam. Kelemahannya ialah menentukan panjang atau ukuran keperluan sekeping teks yang diberikan menjadi lebih rumit.

ASCII Adalah Unicode, tetapi Unicode Bukan ASCII

Untuk keserasian ke belakang, 128 titik kod Unicode pertama mewakili watak ASCII yang setara. Oleh kerana UTF-8 mengekodkan setiap watak ini dengan satu bait, teks ASCII mana pun juga merupakan teks UTF-8. Unicode adalah superset ASCII.

Namun, seperti yang ditunjukkan di atas, banyak fail Unicode tidak dapat digunakan dalam konteks ASCII. Mana-mana watak yang di luar batasan akan ditunjukkan dengan cara yang tidak dijangka, selalunya dengan watak yang diganti yang sama sekali berbeza dengan watak yang dimaksudkan.

Penggunaan Moden

Untuk kebanyakan tujuan, ASCII sebahagian besarnya dianggap sebagai standard warisan. Walaupun dalam situasi yang hanya menyokong tulisan Latin — di mana sokongan penuh untuk kerumitan Unicode tidak diperlukan, misalnya — biasanya lebih mudah menggunakan UTF-8 dan memanfaatkan keserasian ASCIInya.

permainan untuk dimainkan ketika bosan di rumah

Khususnya, laman web harus disimpan dan dihantar menggunakan UTF-8, yang merupakan lalai untuk HTML5. Ini berbeza dengan laman web sebelumnya, yang dibahas dalam ASCII secara lalai sebelum digantikan oleh Latin 1.

Piawaian Yang Berubah

Penyemakan terakhir ASCII berlaku pada tahun 1986.

Sebaliknya, Unicode terus dikemas kini setiap tahun. Skrip, watak baru, dan, terutama, emoji baru selalu ditambahkan. Dengan hanya sebahagian kecil dari jumlah yang diperuntukkan, kumpulan watak penuh kemungkinan akan tumbuh dan berkembang untuk masa yang akan datang.

Berkaitan: 100 Emoji Paling Popular Dijelaskan

ASCII Versus Unicode

ASCII memenuhi tujuannya selama beberapa dekad, tetapi Unicode kini telah menggantikannya dengan berkesan untuk semua tujuan praktikal selain daripada sistem warisan. Unicode lebih besar dan, dengan itu, lebih ekspresif. Ini mewakili usaha kolaboratif di seluruh dunia dan menawarkan fleksibiliti yang jauh lebih besar, walaupun dengan beberapa kerumitan.

Berkongsi Berkongsi Tweet E-mel Apakah Teks ASCII dan Bagaimana Ia Digunakan?

Teks ASCII kelihatan samar, tetapi mempunyai banyak kegunaan di internet.

Baca Seterusnya
Topik-topik yang berkaitan
  • Teknologi Dijelaskan
  • Emoji
  • Istilah
  • Budaya Web
  • Unikod
Mengenai Pengarang Bobby Jack(58 Artikel Diterbitkan)

Bobby adalah peminat teknologi yang bekerja sebagai pembangun perisian selama hampir dua dekad. Dia meminati permainan, bekerja sebagai Editor Ulasan di Switch Player Magazine, dan terlibat dalam semua aspek penerbitan dalam talian & pembangunan web.

Lagi Dari Bobby Jack

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan