UTF-8
UTF-8 (Universal Character Set (UCS) Transformation Format — 8-bit[1]) 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.[2][3][4] 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.[5] Internet Mail Consortium (IMC) merekomendasi seluruh program e-mail dapat menayangkan dan membuat e-mail menggunakan UTF-8.[6] 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 point |
Code point pertama |
Code point terakhir |
Byte dalam sequence |
Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 |
---|---|---|---|---|---|---|---|---|---|
7 | U+0000 | U+007F | 1 | 0xxxxxxx
| |||||
11 | U+0080 | U+07FF | 2 | 110xxxxx |
10xxxxxx
| ||||
16 | U+0800 | U+FFFF | 3 | 1110xxxx |
10xxxxxx |
10xxxxxx
| |||
21 | U+10000 | U+1FFFFF | 4 | 11110xxx |
10xxxxxx |
10xxxxxx |
10xxxxxx
| ||
26 | U+200000 | U+3FFFFFF | 5 | 111110xx |
10xxxxxx |
10xxxxxx |
10xxxxxx |
10xxxxxx
| |
31 | U+4000000 | U+7FFFFFFF | 6 | 1111110x |
10xxxxxx |
10xxxxxx |
10xxxxxx |
10xxxxxx |
10xxxxxx
|
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 (
11100010
), menyisakan ...000010101100
. - Setiap kelanjutan bita dimulai dengan
10
dan dibutuhkan enam bit code point (maka10000010
, lalu10101100
).
Tiga bita11100010
10000010
10101100
dapat ditulis lebih singkat dalam heksadesimal, sebagai E2 82 AC
.
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+0024
|
0100100
|
00100100
|
24
|
¢ | U+00A2
|
000 10100010
|
11000010 10100010
|
C2 A2
|
€ | U+20AC
|
00100000 10101100
|
11100010 10000010 10101100
|
E2 82 AC
|
𤭢 | U+24B62
|
00010 01001011 01100010
|
11110000 10100100 10101101 10100010
|
F0 A4 AD A2
|
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
- ^ "Chapter 2. General Structure". The Unicode Standard (edisi ke-6.0). Mountain View, California, USA: The Unicode Consortium. ISBN 978-1-936213-01-6.
- ^ Davis, Mark (28 January 2010). "Unicode nearing 50% of the web". Official Google Blog. Google. Diakses tanggal 5 December 2010.
- ^ "UTF-8 Usage Statistics". BuiltWith. Diakses tanggal March 28, 2011.
- ^ "Usage of character encodings for websites". W3Techs. Diakses tanggal March 30, 2010.
- ^ Alvestrand, H. (1998). "RFC 2277". Internet Engineering Task Force. Parameter
|contribution=
akan diabaikan (bantuan) - ^ "Using International Characters in Internet Mail". Internet Mail Consortium. August 1, 1998. Diakses tanggal November 8, 2007.
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