UTF-8

UTF-8 (Universal Character Set (UCS) Transformation Format8-bit) adalah sebuah pengkodean karakter dengan lebar variabel tertentu (variable-width encoding) yang mewakili setiap karakter komputer (character) dalam himpunan karakter Unicode. Didesain untuk backward compatibility dengan ASCII dan untuk menghindari komplikasi endianness dan byte order mark dalam UTF-16 dan UTF-32.

UTF-8 telah menjadi metode pengkodean karakter (character encoding) yang dominan untuk World Wide Web, meliputi lebih dari setengah jumlah seluruh halaman Web. Internet Engineering Task Force (IETF) mengharuskan semua protokol Internet untuk mengidentifikasi encoding yang dipakai untuk data karakter, dan pengkodean karakter yang didukung (supported character encoding) untuk menyertakan UTF-8. Internet Mail Consortium (IMC) merekomendasi seluruh program e-mail dapat menayangkan dan membuat e-mail menggunakan UTF-8. UTF-8 juga terus meningkat penggunaannya sebagai default character encoding dalam sistem operasi, bahasa pemrograman, API, dan aplikasi perangkat lunak.

 Deskripsi 
Desain UTF-8 dapat dilihat di tabel berikut yaitu skema yang asalnya diusulkan oleh Dave Prosser dan selanjutnya dimodifikasi oleh Ken Thompson (x diganti dengan bit dari code point):

Bit code pointCode pointpertamaCode pointterakhirByte dalamsequenceByte 1Byte 2Byte 3Byte 4Byte 5Byte 6  7U+0000U+007F10xxxxxxx11U+0080U+07FF2110xxxxx10xxxxxx16U+0800U+FFFF31110xxxx10xxxxxx10xxxxxx21U+10000U+1FFFFF411110xxx10xxxxxx10xxxxxx10xxxxxx26U+200000U+3FFFFFF5111110xx10xxxxxx10xxxxxx10xxxxxx10xxxxxx31U+4000000U+7FFFFFFF61111110x10xxxxxx10xxxxxx10xxxxxx10xxxxxx10xxxxxx

 Contoh 
Mari melihat bagaimana membuat pengkodean tanda mata uang Euro, €.
 'Unicode code point untuk "€" adalah U+20AC.
 Menurut tabel skema di atas, dibutuhkan 3 bita (byte) untuk pengkodean, karena terletak di antara U+0800 dan U+FFFF.
 Kode heksadesimal 20AC adalah sama dengan kode biner (binary) 0010000010101100. Dua angka nol di depan ditambahkan karena, seperti dalam tabel, suatu pengkodean tiga-bita (three-byte encoding) membutuhkan tepat enam belas bit dari the code point.
 Karena berupa pengkodean tiga-bita, bita pendahulu dimulai dengan tiga angka "1", kemudian satu angkat "0" (1110...)
 Bit sisanya dari bita ini diambil dari code point (1110), menyisakan ...000010101100.
 Setiap kelanjutan bita dimulai dengan 10 dan dibutuhkan enam bit code point (maka 10, lalu 10).
Tiga bita1110 10 10 dapat ditulis lebih singkat dalam heksadesimal, sebagai   .

Tabel berikut adalah ikhtisar pengubahan ini, juga yang lain dengan panjang berbeda dalam UTF-8. Warna-warna mengindikasikan bagaiman bit dari code point didistribusikan di antara byte-byte UTF-8. Bit tambahan yang ditambahkan oleh proses encoding UTF-8 diberi warna hitam.
Karakter code point biner UTF-8 biner UTF-8 heksadesimal$  U+00240¢  U+00A2110 10 €  U+20AC1110 10 10  𤭢  U+24B6211110 10 10 10   

 Lihat pula 
 Alt code
 Pengkodean karakter
 Comparison of e-mail clients#Features
 Comparison of Unicode encodings
 GB 18030
 Iconv—a standardized API used to convert between different character encodings
 ISO/IEC 8859
 Specials (Unicode block)
 Unicode
 Unicode and HTML
 Universal Character Set
 UTF-8 in URIs
 UTF-9 and UTF-18
 UTF-16/UCS-2

 Referensi 

 Pranala luar 
Ada beberapa definisi UTF-8 dalam berbagai dokumen standar:
 RFC 3629 / STD 63 (2003), yang menetapkan UTF-8 sebagai elemen protokol Internet standar
 The Unicode Standard, Version 6.0, §3.9 D92, §3.10 D95 (2011)
 ISO/IEC 10646:2003 Annex D (2003)

Dokumen-dokumen tersebut menggantikan definisi-definisi yang telah usang dalam karya-karya berikut:
 ISO/IEC 10646-1:1993 Amendment 2 / Annex R (1996)
 The Unicode Standard, Version 5.0, §3.9 D92, §3.10 D95 (2007)
 The Unicode Standard, Version 4.0, §3.9–§3.10 (2003)
 The Unicode Standard, Version 2.0, Appendix A (1996)
 RFC 2044 (1996)
 RFC 2279 (1998)
 The Unicode Standard, Version 3.0, §2.3 (2000) plus Corrigendum #1: UTF-8 Shortest Form (2000)
 Unicode Standard Annex #27: Unicode 3.1'' (2001)

Semua sama dalam mekanika umum, dengan perbedaan pokok pada topik-topik misalnya mengizinkan range nilai code point dan safe handling untuk invalid input.
 Original UTF-8 paper (or pdf ) for Plan 9 from Bell Labs
 RFC 5198 defines UTF-8 NFC for Network Interchange
 UTF-8 test pages by Andreas Prilop , Jost Gippert and the World Wide Web Consortium
 How to configure e-mail clients to send UTF-8 text
 Unix/Linux: UTF-8/Unicode FAQ, Linux Unicode HOWTO , UTF-8 and Gentoo
 The Unicode/UTF-8-character table displays UTF-8 in a variety of formats (with Unicode and HTML encoding information)
 Unicode and Multilingual Web Browsers from Alan Wood's Unicode Resources describes support and additional configuration of Unicode/UTF-8 in modern browsers
 JSP Wiki Browser Compatibility page  details specific problems with UTF-8 in older browsers
 Mathematical Symbols in Unicode 
 Graphical View of UTF-8 in ICU's Converter Explorer

Kategori:Tipografi
Kategori:Unicode
Kategori:Pengkodean karakter
Kategori:Komputer