Gandingan Pengganti dalam Pengekodan UTF-16 Java
Konsep pasangan pengganti timbul apabila bekerja dengan aksara Unicode yang mempunyai titik kod tinggi di luar julat unit kod 16-bit yang digunakan dalam UTF-16 pengekodan.
Apakah itu Pasangan Pengganti?
Dalam UTF-16, pasangan pengganti ialah gabungan dua unit kod yang bersama-sama mewakili satu titik kod. Apabila aksara tidak boleh dikodkan dalam unit kod 16-bit tunggal, ia diwakili seperti berikut:
Pengganti tinggi menunjukkan separuh pertama titik kod, manakala pengganti rendah menunjukkan separuh kedua. Bersama-sama, ia membentuk titik kod 32-bit.
Pengekodan dan Penyahkodan
Proses pengekodan titik kod di luar U FFFF menjadi pasangan pengganti adalah seperti berikut:
Tolak 0x10000 daripada titik kod untuk mendapatkan pengganti tinggi nilai.
Anjakan nilai ganti tinggi ke kanan sebanyak 10 bit.
Tambahkan U D800 pada nilai ganti tinggi untuk mendapatkan unit kod pengganti tinggi.
Ambil baki 10 bit titik kod untuk mendapatkan nilai rendah nilai pengganti.
Tambahkan U DC00 pada nilai pengganti rendah untuk mendapatkan kod pengganti rendah unit.
Menyahkod titik kod daripada pasangan pengganti melibatkan proses terbalik.
Contoh
Pertimbangkan aksara Unikod U 10400, yang mewakili watak?. Untuk mengekod aksara ini menjadi pasangan pengganti:
Tolak 0x10000 daripada U 10400: 0x400
Anjakan 0x400 ke kanan dengan 10 bit: 0x4
Tambahkan U D800 kepada 80x4 kod U tinggi
Tambah U DC00 hingga 0x3C0: U DC00 (unit kod pengganti rendah)
Watak U 10400 kini diwakili oleh pasangan pengganti U D804 U DC00.
Atas ialah kandungan terperinci Apakah Pasangan Pengganti dalam Pengekodan UTF-16 Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!