UTF-8

Bách khoa toàn thư mở Wikipedia

UTF-8 (8-bit Unicode Transformation Format - Định dạng chuyển đổi Unicode 8-bit) là một bộ mã hóa ký tự với chiều rộng biến thiên dành cho Unicode. Tương tự như UTF-16UTF-32, UTF-8 có thể biểu diễn tất cả các chữ cái trong bộ ký tự Unicode, nhưng điểm khác biệt quan trọng nhất là nó có thể tương thích ngược với ASCII. Vì lý do này, UTF-8 nhanh chóng trở thành bộ mã hóa thống trị trong các tập tin, thư điện tử, trang web[1][2], và các phần mềm xử lý văn bản.

UTF-8 mã hóa mỗi ký tự (điểm mã) thành 1 đến 8 octet (tức là byte gồm 8-bit). 128 ký tự đầu tiên của bộ ký tự Unicode (tương ứng một-một với bộ ASCII) chỉ dùng một octet có cùng giá trị nhị phân như bộ ASCII.

Lực lượng Chuyên trách về Kỹ thuật Liên mạng (Internet Engineering Task Force - IETF) bắt buộc mọi giao thức Internet phải xác định bộ mã hóa dùng trong dữ liệu ký tự, và trong các bộ mã hóa ký tự hỗ trợ phải có UTF-8[3]. Liên minh Thư tín Internet (Internet Mail Consortium - IMC) khuyến cáo tất cả các chương trình thư điện tử phải hiển thị và tạo được thư bằng UTF-8[4].

Lịch sử[sửa | sửa mã nguồn]

Cho đến đầu năm 1992, người ta vẫn đang tìm kiếm một bộ mã hóa thành byte cho các tập ký tự có nhiều byte. Tiêu chuẩn ISO 10646 ở dạng nháp có một phần phụ không bắt buộc có tên là UTF cung cấp một cách mã hóa ra dạng byte cho các điểm mã 32-bit của nó. Cách mã hóa này không tốt về mặt hiệu suất, nhưng đã giới thiệu cách ký hiệu ở dạng byte trong dải 0–127 của ASCII theo UTF, từ đó tạo ra khả năng tương thích ngược.

Vào tháng 7 năm 1992, ủy bản XoJIG của X/Open bắt đầu tìm kiếm một cách mã hóa tốt hơn. Dave Prosser thuộc Phòng thí nghiệm Hệ thống Unix đề xuất một cách mã hóa có đặc tính hiện thực nhanh hơn và giới thiệu cải tiến sao cho các ký tự ASCII 7-bit chỉ đại diện cho chính chúng; còn mọi chuỗi nhiều byte khác sẽ chỉ thêm các byte có bit cao bằng 1.

Vào tháng 8 năm 1992, đề xuất này đã được đại diện của IBM X/Open chuyển giao cho các bên có quan tâm. Ken Thompson thuộc nhóm hệ điều hành Plan 9 tại Bell Labs sau đó đã thực hiện một chỉnh sửa 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 để tìm các biên điểm mã nữa. Thiết kế của Thompson được mô tả tổng quan vào ngày 2 tháng 9 năm 1992 trong bữa ăn với Rob Pike. Những ngày sau, Pike và Thompson hiện thực nó và cập nhật Plan 9 để sử dụng nó rộng rãi, rồi thông báo thành công của họ lại cho X/Open.[5]

UTF-8 lần đầu tiên được giới thiệu chính thức là tại hội nghị USENIXSan Diego, diễn ra từ ngày 25-29 tháng 1 năm 1993.

Chú thích[sửa | sửa mã nguồn]

  1. ^ “Moving to Unicode 5.1”. Official Google Blog. ngày 5 tháng 5 năm 2008. Truy cập ngày 8 tháng 5 năm 2008.
  2. ^ “Usage of character encodings for websites”. W3Techs. Truy cập ngày 30 tháng 3 năm 2010.
  3. ^ Alvestrand, H. (1998). “RFC 2277”. Internet Engineering Task Force. Chú thích journal cần |journal= (trợ giúp); |contribution= bị bỏ qua (trợ giúp)
  4. ^ “Using International Characters in Internet Mail”. Internet Mail Consortium. ngày 1 tháng 8 năm 1998. Bản gốc lưu trữ ngày 26 tháng 10 năm 2007. Truy cập ngày 8 tháng 11 năm 2007.
  5. ^ Pike, Rob (ngày 3 tháng 4 năm 2003). “UTF-8 history”.