Komputer, Pemrograman
UTF-8 - karakter encoding
Unicode mendukung hampir semua rangkaian karakter yang ada. Bentuk terbaik dari encoding set karakter Unicode adalah UTF-8 encoding. Mendukung kompatibilitas dengan ASCII, ketahanan terhadap distorsi data, efisiensi dan kemudahan pengolahan. Tapi hal pertama yang pertama.
bentuk coding
Komputer beroperasi tidak hanya sebagai angka benda abstrak matematika, serta kombinasi dari unit penyimpanan dan penanganan berukuran tetap Data - byte dan 32-bit kata-kata. standar pengkodean harus mempertimbangkan hal ini ketika menentukan bagaimana menyajikan jumlah karakter.
Dalam sistem komputer, bilangan bulat disimpan dalam sel memori 8 bit (1 byte), 16 atau 32 bit. Setiap bentuk mendefinisikan encoding Unicode, yang urutan sel memori adalah bilangan bulat yang sesuai dengan simbol tertentu. Dalam standar ada tiga bentuk yang berbeda dari pengkodean karakter Unicode 8, 16 dan 32-bit blok. Dengan demikian, mereka dikenal sebagai UTF-8, UTF-16 dan UTF-32. Nama UTF singkatan Transformasi Format Unicode. Masing-masing dari tiga bentuk pengkodean berarti sama representasi karakter Unicode memiliki kelebihan dalam berbagai aplikasi.
enkripsi data dapat digunakan untuk mewakili semua karakter dalam standar Unicode. Dengan demikian, mereka sepenuhnya kompatibel dengan solusi untuk berbagai alasan, menggunakan berbagai bentuk coding. Setiap coding dapat jelas dikonversi menjadi salah satu dari dua lainnya tanpa kehilangan data.
prinsip nenalozheniya
Masing-masing dari encoding bentuk Unicode dikembangkan dalam pandangan tumpang tindih non parsial. Sebagai contoh, Windows-932 membentuk karakter dari satu atau dua byte kode. Panjang urutan tergantung pada byte pertama, sehingga nilai-nilai byte terkemuka dalam rangkaian dua-byte dan satu byte menguraikan. Namun, nilai satu byte dan trailing urutan byte mungkin bertepatan. Ini berarti misalnya bahwa pencarian karakter D (kode 44) dapat menemukannya keliru masuk ke bagian kedua dari urutan dua-byte karakter "D" (kode 84 44). Untuk mengetahui urutan yang benar, program harus memperhitungkan byte sebelumnya.
Situasi ini rumit, jika terkemuka dan trailing byte pertandingan. Ini berarti bahwa untuk menghilangkan ambiguitas akan reverse lookup sebelum mencapai awal teks atau urutan kode unik. Ini bukan hanya tidak efisien, tetapi tidak dilindungi dari kemungkinan kesalahan, karena hanya satu byte salah untuk teks lengkap telah menjadi tidak terbaca.
Format konversi Unicode menghindari masalah ini karena nilai terkemuka, Trailing, dan satu unit penyimpanan tidak informasi yang sama. Hal ini memastikan bahwa semua Unicode untuk mencari dan perbandingan, tidak pernah memberikan hasil yang salah karena kebetulan bagian yang berbeda dari kode karakter. Fakta bahwa bentuk-bentuk pengkodean mengamati nenalozheniya prinsip, membedakan mereka dari Asia pengkodean multi-byte Timur lainnya.
Aspek lain nonintersection encoding Unicode adalah bahwa masing-masing karakter memiliki perbatasan yang jelas. Hal ini menghilangkan kebutuhan untuk memindai jumlah yang tak terbatas dari simbol sebelumnya. Fitur ini kadang-kadang disebut encoding diri clocking. Distorsi unit kode akan memperkenalkan distorsi hanya satu karakter, dan karakter sekitarnya masih utuh. Dalam konversi format 8-bit, jika pointer menunjuk ke byte, dimulai dengan 10xxxxxx (dalam kode biner) untuk menemukan awal simbol diperlukan untuk 1-3 transisi terbalik.
konsistensi
Konsorsium Unicode sepenuhnya mendukung semua 3 bentuk pengkodean. Hal ini penting untuk tidak menentang UTF-8 dan Unicode, karena semua format konversi - sama bentuk valid perwujudan dari Unicode karakter-encoding standar.
Byte-orientasi
Untuk mewakili UTF-32 karakter akan membutuhkan unit kode 32-bit, yang bertepatan dengan kode Unicode. UTF-16 - 01:59 unit 16-bit. Sebuah UTF-8 menggunakan hingga 4 bytes.
UTF-8 encoding dirancang agar kompatibel dengan sistem berbasis ASCII byte-oriented. Sebagian besar perangkat lunak yang ada dan praktek teknologi informasi untuk waktu yang lama mengandalkan representasi dari karakter dalam urutan byte. Beberapa protokol tergantung pada keteguhan dari ASCII encoding dan menggunakan baik menghindari karakter kontrol khusus. Cara mudah untuk beradaptasi dengan situasi Unicode bisa, menggunakan 8-bit coding untuk mewakili karakter Unicode, karakter ASCII setara atau karakter kontrol. Untuk tujuan ini, dan itu adalah UTF-8 encoding.
panjang variabel
UTF-8 - coding panjang variabel, yang terdiri dari unit penyimpanan 8-bit, bit atas yang menunjukkan kepada bagian mana dari urutan setiap byte individu milik. Salah satu rentang nilai yang dialokasikan ke elemen pertama dari urutan kode, lain - untuk selanjutnya. Hal ini memberikan pengkodean disjointness.
ASCII
Kode ASCII UTF-8 encoding didukung penuh (0x00-0x7F). Ini berarti bahwa karakter Unicode U + 0000-U + 007F diubah menjadi tunggal byte 0x00-0x7F UTF-8 dan dengan demikian menjadi tidak bisa dibedakan dari ASCII. Selain itu, untuk menghindari ambiguitas, nilai 0x00-0x7F tidak digunakan lagi dalam byte representasi tunggal karakter Unicode. Untuk mengkodekan simbol neideograficheskih selain ASCII, menggunakan urutan dua byte. Simbol berkisar U + 0800-U + FFFF diwakili oleh tiga byte, dan kode tambahan lebih dari U + FFFF membutuhkan empat byte.
lingkup aplikasi
UTF-8 encoding biasanya diberikan preferensi dalam protokol HTML, dan sejenisnya.
XML telah menjadi standar pertama dengan dukungan penuh untuk UTF-8 encoding. organisasi standar juga merekomendasikan hal ini. Masalah dukungan di alamat URL yang berbeda dari ASCII-karakter, itu diselesaikan ketika konsorsium W3C dan kelompok rekayasa IETF datang ke kesepakatan tentang coding semua alamat URL secara eksklusif di UTF-8.
Kompatibilitas dengan ASCII memfasilitasi transisi ke perangkat lunak baru. Dengan UTF-8 bekerja editor teks yang paling, termasuk jEdit, Emacs, BBEdit, Eclipse, dan "Notepad" sistem operasi Windows. Tidak ada bentuk lain dari encoding Unicode tidak bisa membanggakan dari dukungan tersebut dari alat.
coding keuntungan adalah bahwa hal itu terdiri dari urutan byte. Dengan UTF-8 string adalah mudah untuk bekerja di C dan bahasa pemrograman lainnya. Ini adalah satu-satunya bentuk pengkodean, urutan tidak memerlukan label byte BOM atau deklarasi pengkodean dalam XML.
self-sinkronisasi
Dalam lingkungan yang menggunakan simbol-simbol 8-bit pengolahan dibandingkan dengan set karakter multi-byte lainnya, UTF-8 memiliki keuntungan sebagai berikut:
- Urutan kode byte pertama berisi informasi tentang panjangnya. Hal ini meningkatkan efisiensi pencarian langsung.
- Disederhanakan menemukan awal simbol sebagai byte awal terbatas pada kisaran tetap nilai-nilai.
- Tidak ada nilai-nilai persimpangan byte.
Bandingkan manfaat
UTF-8 encoding kompak. Tapi ketika digunakan untuk encoding karakter Asia Timur (Cina, Jepang, Korea, tulisan Cina menggunakan tanda-tanda) digunakan urutan 3-byte. Juga UTF-8 encoding lebih rendah daripada bentuk-bentuk lain dari coding kecepatan pemrosesan. Sebuah garis menyortir biner menghasilkan hasil yang sama dengan biner menyortir Unicode.
Skema karakter encoding
Skema pengkodean karakter terdiri bentuk simbol encoding dan metode untuk unit kode lokasi tunggal byte. Untuk menentukan skema encoding Unicode standar menyediakan penggunaan perintah byte tanda awal (BOM, Byte rangka mark).
Ketika BOM dalam UTF-8 tag fitur hanya dibatasi dengan mengacu pada penggunaan bentuk coding. Masalah dalam menentukan endian UTF-8 memiliki, sebagai ukuran unit encoding adalah satu byte. Menggunakan BOM untuk bentuk coding yang tidak diperlukan atau dianjurkan. BOM dapat terjadi dalam teks yang akan dikonversi dari pengkodean lain menggunakan tanda urutan byte atau tanda tangan untuk UTF-8 encoding. Adalah urutan 3 byte EF BB 16 16 BF 16.
Cara mengatur UTF-8 encoding
The HTML coding UTF-8 diinstal dengan kode berikut:
kepala
Meta http-equiv = "Content-Type" content = "text / html; charset = utf-8" ˃
Dalam PHP UTF-8 encoding diatur menggunakan header () fungsi pada awal file setelah pengaturan kesalahan nilai tingkat output:
˂? Php
error_reporting (-1);
header ( "Content-Type: text / html; charset = utf-8 ');
Untuk menyambung ke database MySQL UTF-8 encoding diatur:
˂? Php
mysql_set_charset ( 'utf8');
CSS-file encoding adalah karakter UTF-8 ditentukan sebagai berikut:
@charset "utf-8";
Ketika Anda menyimpan file dari semua jenis memilih UTF-8 encoding tanpa BOM, jika situs tidak akan bekerja. Untuk melakukan hal ini di DreamWeave perlu memilih item menu "Modifikasi - Page Properties - Judul / Encoding" untuk mengubah pengkodean UTF-8. Diikuti oleh reload halaman, hilangkan tanda cek dari "Connect Unicode tanda tangan (BOM)» dan menerapkan perubahan. Jika ada teks pada halaman atau dalam database diperkenalkan bentuk lain dari coding, perlu untuk memasukkan kembali atau re-encode. Ketika Anda bekerja dengan ekspresi reguler, pastikan untuk menggunakan modifikator u.
Anda juga dapat menyimpan file dalam UTF-8 encoding dalam "Notepad" dari Windows. Setelah memilih item menu "File - Save As ..." untuk menginstal bentuk yang diperlukan encoding dan menyimpan file dalam UTF-8.
Dalam editor teks Notepad ++, jika diatur selain UTF-8, melalui item menu "Convert ke UTF-8 tanpa BOM» mengubah karakter dan menyimpan dalam UTF-8.
tidak ada alternatif
Dalam konteks globalisasi, di mana batas-batas politik dan linguistik akan terhapus, karakter set yang mempunyai karakteristik lokal, jarang digunakan. Unicode adalah satu set karakter tunggal yang mendukung semua lokalisasi. Sebuah UTF-8 - contoh implementasi yang tepat dari Unicode, yaitu:
- Hal ini mendukung berbagai alat, termasuk kompatibilitas dengan ASCII encoding;
- Hal ini tahan terhadap distorsi data;
- sederhana dan efektif dalam pengobatan;
- adalah platform independen.
Dengan munculnya UTF-8 perdebatan tentang apa bentuk pengkodean atau set karakter yang lebih baik, itu menjadi tidak berarti.
Similar articles
Trending Now