Rumah > Java > javaTutorial > Apakah Pasangan Pengganti dalam Pengekodan UTF-16 Java?

Apakah Pasangan Pengganti dalam Pengekodan UTF-16 Java?

Linda Hamilton
Lepaskan: 2024-12-05 10:12:11
asal
1013 orang telah melayarinya

What are Surrogate Pairs in Java's UTF-16 Encoding?

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:

  • Unit kod pengganti tinggi digunakan pada permulaan pasangan, dengan julat U D800 kepada U DBFF.
  • Unit kod pengganti rendah mengikuti pengganti tinggi, dengan julat U DC00 hingga U DFFF.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan