UTF-8
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 degan 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
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