Bagikan melalui


Menggunakan Tanda Urutan Byte

Selalu awali file teks biasa Unicode dengan tanda urutan byte, yang menginformasikan aplikasi menerima file bahwa file diurutkan byte. Tanda urutan byte yang tersedia tercantum dalam tabel berikut. Karena teks biasa Unicode adalah urutan nilai kode 16-bit, teks tersebut sensitif terhadap urutan byte yang digunakan saat teks ditulis.

Catatan

Tanda urutan byte bukan karakter kontrol yang memilih urutan byte teks.

 

Tanda urutan byte Deskripsi
EF BB BF UTF-8
FF FE UTF-16, little endian
FE FF UTF-16, big endian
FF FE 00 00 UTF-32, little endian
00 00 FE FF UTF-32, big-endian

 

Catatan

Microsoft menggunakan UTF-16, urutan byte little endian.

 

Idealnya, semua teks Unicode hanya mengikuti satu set aturan pengurutan byte. Namun, ini tidak mungkin terjadi karena mikroprosektor berbeda dalam penempatan byte yang paling tidak signifikan. Prosesor Intel dan MIPS memposisikan byte yang paling tidak signifikan terlebih dahulu, sedangkan prosesor Motorola (dan semua file Unicode terbalik byte) memposisikannya terakhir. Dengan hanya satu set aturan pengurutan byte, pengguna dari satu jenis mikroprosesor dipaksa untuk menukar urutan byte setiap kali file teks biasa dibaca dari atau ditulis ke, bahkan jika file tidak pernah ditransfer ke sistem operasi lain berdasarkan mikroprosesor yang berbeda.

Tempat yang disukai untuk menentukan urutan byte ada di header file, tetapi file teks tidak memiliki header. Oleh karena itu, Unicode telah mendefinisikan karakter (U+FEFF) dan noncharacter (U+FFFE) sebagai tanda urutan byte. Mereka adalah gambar byte cermin satu sama lain.

Karena urutan U+FEFF sangat jarang di awal file teks non-Unicode biasa, U+FEFF dapat berfungsi sebagai penanda atau tanda tangan implisit untuk mengidentifikasi file sebagai file Unicode. Aplikasi yang membaca file teks Unicode dan non-Unicode harus menggunakan keberadaan urutan ini sebagai indikator bahwa file kemungkinan besar adalah file Unicode. Bandingkan teknik ini dengan menggunakan penanda MS-DOS EOF untuk mengakhiri file teks.

Ketika aplikasi menemukan U+FEFF di awal file teks, aplikasi biasanya memproses file sebagai file Unicode, meskipun dapat melakukan pemeriksaan heuristik lebih lanjut untuk verifikasi. Pemeriksaan seperti itu bisa sesederhana pengujian untuk mengetahui apakah variasi dalam byte urutan rendah jauh lebih tinggi daripada variasi dalam byte urutan tinggi. Misalnya, jika teks ASCII dikonversi ke teks Unicode, setiap byte kedua adalah 0. Selain itu, memeriksa karakter linefeed dan carriage return (U+000A dan U+000D) dan untuk ukuran file genap atau ganjil dapat memberikan indikator yang kuat tentang sifat file.

Ketika aplikasi menemukan U+FFFE di awal file teks, aplikasi menafsirkannya berarti bahwa file tersebut adalah file Unicode terbalik byte. Aplikasi dapat menukar urutan byte atau memperingatkan pengguna bahwa kesalahan telah terjadi.

Karena karakter tanda urutan byte Unicode tidak ditemukan di halaman kode apa pun, karakter tersebut menghilang jika data dikonversi ke ANSI. Tidak seperti karakter Unicode lainnya, karakter tersebut tidak digantikan oleh karakter default saat dikonversi. Jika tanda urutan byte ditemukan di tengah file, tanda urutan tersebut tidak ditafsirkan sebagai karakter Unicode dan tidak berpengaruh pada output teks.

Catatan

Nilai Unicode U+FFFF ilegal dalam file teks biasa dan tidak dapat diteruskan di antara aplikasi. Ini dicadangkan untuk penggunaan privat aplikasi.

 

Menggunakan Karakter Khusus di Unicode