07/09/2018, 10:56

Phân Biệt Character Set và Character Encoding

Trong khi lập trình một trong số những công việc mà chúng ta hay phải đụng tới đó là hiển thị nội dung cho người dùng, đặc biệt nếu bạn lập trình web thì phần hiển thị nội dung của tập tin HTML là công việc thường xuyên. Khi đó các bạn lập trình viên thường sẽ sử dụng character encoding là UTF-8, ...

Trong khi lập trình một trong số những công việc mà chúng ta hay phải đụng tới đó là hiển thị nội dung cho người dùng, đặc biệt nếu bạn lập trình web thì phần hiển thị nội dung của tập tin HTML là công việc thường xuyên. Khi đó các bạn lập trình viên thường sẽ sử dụng character encoding là UTF-8, ví dụ đối với trang HTML thì thông qua thẻ <meta>:

<head>
    <meta charset="utf-8">
    ....
</head>

Trên thực tế character encoding và character set là hai trong số những khái niệm phổ biến mà bạn sẽ thường thấy trong lập trình dù nhận ra điều này hay không. Trong bài viết này chúng ta sẽ tìm hiểu chính xác những thuật ngữ này có ý nghĩa như thế nào.

Character Set Là Gì

Một character set (hay bộ ký tự) bao gồm tập hợp toàn bộ các ký tự mà bạn có thể sử dụng. Ví dụ Unicode là một character set được sử dụng khá phổ biến trong đó chứa tới hơn 128,000 ký tự, bao gồm các ký tự chữ cái, chữ số và những ký tự đặc biệt khác: a-z, A-Z, 0-9...

Bạn cũng cần lưu ý rằng có nhiều character set khác nhau. Điều này là bởi vì mỗi một quốc gia sử dụng một tập hợp số lượng ký tự khác nhau. Ví dụ trong tiếng Việt có các ký tự khác với tiếng Anh như â, ê, ơ...

Một số tài liệu còn gọi character set là character table.

Character Encoding Là Gì

Từ khi ra đời đến nay máy tính chỉ hiểu được các con số, và do đó để có thể làm việc được với các ký tự chữ cái hay ký tự đặc biệt các nhà khoa học máy tính đã sử dụng các số để biểu diễn cho từng ký tự này. Với mỗi một ký tự sẽ được đặc trưng bởi một số duy nhất. Nói cách khác character encoding là cách mã hóa trong đó sử dụng các số để biểu diễn các chữ cái và ký tự đặc biệt.

Ví dụ ASCII là một trong những kiểu mã hoá ký tự phổ biến được sử dụng trước đây. Trong kiểu encoding ASCII thì chữ cái A thì có thể biểu diễn với số 65, chữ B được biểu diễn bằng số 66, chữ C được biểu diễn bằng số 67...

Bảng mã hoá ký tự theo kiểu ASCII

Sau đó các kiểu mã hoá ký tự như UTF-8 được phát triển để thêm các ký tự mà ASCII không có. Bạn cũng cần lưu ý rằng với mỗi một bộ ký tự (character set) sẽ có thể có nhiều kiểu encoding khác nhau. Ví dụ với bộ ký tự Unicode có hai kiểu encode là UTF-8 và UTF-16.

0