UTF-8

**UTF-8** (**[[:en:Universal Character Set|Universal Character Set (UCS)]] Transformation Format8-bit**) adalah sebuah pengkodean karakter dengan lebar variabel tertentu (*[[:en:variable-width encoding|variable-width encoding]]*) yang mewakili setiap karakter komputer (*character*) dalam himpunan karakter Unicode. Didesain untuk *[[:en:backward compatibility|backward compatibility]]* dengan ASCII dan untuk menghindari komplikasi *[[:en:endianness|endianness]]* dan *[[:en:byte order mark|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 *[[Pengkodean karakter|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*):

### 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|bita (*byte*)]] untuk pengkodean, karena terletak di antara U+0800 dan U+FFFF.
# Kode heksadesimal *'`20AC`** adalah sama dengan [[sistem bilangan biner|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 bita**`1110`** **`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.





== Lihat pula ==
* [[Alt code]]
* [[Pengkodean karakter]]
* [[Comparison of e-mail clients#Features]]
* [[Comparison of Unicode encodings]]
* [[GB 18030]]
* [[Iconv]]—a standardized [[Application programming interface|API]] used to convert between different [[character encoding]]s
* [[ISO/IEC 8859]]
* [[Specials (Unicode block)]]
* [[Unicode]]
* [[Unicode and HTML]]
* [[Universal Character Set]]
* [[Percent-encoding#Current standard|UTF-8 in URIs]]
* [[UTF-9 and UTF-18]]
* [[UTF-16|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*, [http://www.unicode.org/versions/Unicode6.0.0/ch03.pdf §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