มันเป็นโครงร่างที่แตกต่างกันเพียงสำหรับการแสดงอักขระ Unicode
ทั้งสองเป็นความยาวผันแปร - UTF-16 ใช้ 2 ไบต์สำหรับอักขระทั้งหมดในระนาบหลายภาษาพื้นฐาน (BMP) ซึ่งมีอักขระส่วนใหญ่ที่ใช้งานทั่วไป
UTF-8 ใช้ระหว่าง 1 ถึง 3 ไบต์สำหรับอักขระใน BMP สูงสุด 4 สำหรับอักขระในช่วง Unicode ปัจจุบันที่ U + 0000 ถึง U + 1FFFFF และขยายได้สูงสุด U + 7FFFFFFF หากจำเป็น ... แต่โดยเฉพาะอย่างยิ่งอักขระ ASCII ทั้งหมดจะแสดงเป็นไบต์เดียวละ
สำหรับวัตถุประสงค์ของการแยกย่อยข้อความไม่สำคัญว่าคุณเลือกสิ่งใดตราบใดที่ทุกคนที่พยายามสร้างการแยกย่อยใช้ตัวเลือกเดียวกัน
ดูหน้านี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ UTF-8 และ Unicode
(โปรดทราบว่าอักขระ Java ทั้งหมดเป็นรหัสจุด UTF-16 ภายใน BMP เพื่อแสดงอักขระเหนือ U + FFFF คุณต้องใช้คู่ตัวแทนใน Java)