UTF-8 (8-bit Unicode Transformation Format - Định dạng chuyển đổi Unicode 8-bit) là một phương pháp mã hóa ký tự với chiều rộng biến thiên cho Unicode. Giống như UTF-16 và UTF-32, UTF-8 có thể biểu diễn tất cả các ký tự trong bộ Unicode, nhưng điểm nổi bật là nó tương thích hoàn toàn với ASCII. Chính vì vậy, UTF-8 nhanh chóng trở thành tiêu chuẩn phổ biến trong các tập tin, email, trang web, và phần mềm xử lý văn bản.
UTF-8 mã hóa mỗi ký tự (điểm mã) thành từ 1 đến 8 octet (byte 8-bit). 128 ký tự đầu tiên của Unicode (tương ứng một-một với ASCII) chỉ cần một octet với giá trị nhị phân tương tự như ASCII.
Nhóm Kỹ thuật Internet (Internet Engineering Task Force - IETF) yêu cầu mọi giao thức Internet phải xác định mã hóa được sử dụng trong dữ liệu ký tự, và UTF-8 phải có mặt trong tất cả các mã hóa ký tự hỗ trợ. Liên minh Thư tín Internet (Internet Mail Consortium - IMC) khuyến nghị mọi chương trình email phải hiển thị và gửi thư bằng UTF-8.
Lịch sử
Đến đầu năm 1992, việc tìm kiếm một phương pháp mã hóa byte cho các tập ký tự đa byte vẫn đang tiếp tục. Tiêu chuẩn ISO 10646, ở phiên bản nháp, bao gồm một phần phụ tùy chọn có tên là UTF, cung cấp một phương pháp mã hóa các điểm mã 32-bit thành dạng byte. Phương pháp mã hóa này mặc dù không hiệu quả về mặt hiệu suất, nhưng đã giới thiệu cách ký hiệu byte trong dải 0–127 của ASCII theo UTF, từ đó tạo ra sự tương thích ngược.
Vào tháng 7 năm 1992, ủy ban XoJIG của X/Open đã bắt đầu tìm kiếm một phương pháp mã hóa hiệu quả hơn. Dave Prosser từ Phòng thí nghiệm Hệ thống Unix đã đề xuất một mã hóa mới, cải thiện tốc độ thực hiện và đảm bảo rằng các ký tự ASCII 7-bit chỉ đại diện cho chính chúng, trong khi các chuỗi nhiều byte khác sẽ chỉ thêm các byte với bit cao bằng 1.
Đến tháng 8 năm 1992, đề xuất này đã được đại diện của IBM X/Open chuyển đến các bên liên quan. Ken Thompson từ nhóm hệ điều hành Plan 9 tại Bell Labs đã thực hiện một sửa đổi quan trọng cho bộ mã hóa, cho phép nó tự đồng bộ, tức là không cần phải đọc từ đầu dãy để xác định các biên điểm mã. Thiết kế của Thompson đã được mô tả vào ngày 2 tháng 9 năm 1992 trong một bữa ăn với Rob Pike. Những ngày sau đó, Pike và Thompson đã triển khai nó và cập nhật Plan 9 để sử dụng rộng rãi, sau đó thông báo thành công của họ cho X/Open.
UTF-8 lần đầu tiên được công bố chính thức tại hội nghị USENIX diễn ra tại San Diego từ ngày 25 đến 29 tháng 1 năm 1993.