Encoding utf8 python là gì
Utf-8 là gì là một trong những keyword được search nhiều nhất trên Google về chủ đề utf-8 là gì. Trong bài viết này, cachthietkeweb.vn sẽ viết bài viết Utf-8 là gì? Tại sao chúng ta cần hiểu về utf-8? Chúng ta thường nghe nhiều đến Unicode, UTF-8, UTF16, hay Shift-JS. Trong bài này chỉ xin sử dụng rõ những định nghĩa này để khi gặp phải vấn đề về Charset hay Encoding mà có phương án thích hợp.
1. Bảng mã kí tự là gì?Bảng mã kí tự (char code table) là một bảng dùng để đánh chỉ số cho một tâp kí tự (char) ,sao cho mỗi kí tự được ánh xạ từ
số duy nhất (code). Ta đang biết đến bảng mã ASCII: Ở
bảng trên, ta thấy cột Char, giới thiệu kí tự; Rất dễ để hiểu định nghĩa bảng mã, những cái gây khó khăn là ở phần 2 2. Encoding là gì?Ta vừa mới có khái niệm về bảng mã kí tự. Đến đây thôi, về cơ bản, nó chẳng không
giống nào cái thực đơn bảng giá ở quán. diễn tả thế nào đây? Nếu trị
giá từ 0 ~ 100 : ta cần 1 byte ( vì giá trị có thể sẽ là khoảng: 0 ~ 255) Với công thức này, giá trị được lưu xuống chính là giá trị trong bảng mã kí tự ở trên, nên Ví dụ: như bảng ASCII chẳng hạn, ta cần 1 byte : A -> 65 (0x41); B -> 66 (0x42) Nhưng có 1 chủ đề ở
đây, giả sử mọi người đều sử dụng Unicode (giá trị to nhất hiện nay là 0x1F8FF), tức là cần khoảng 3 byte để encode all. 3. Unicode, Shift-JS, UTF8, UTF16Unicode là bảng mã chứa gần như toàn bộ các kí tự của hầu hết các ngôn ngữ trên toàn cầu. Với các kí tự từ 0(0x00) ~ 127(0x7F) (tức là của ASCII – có 128 kí tự) : vẫn là 1
byte. : 0X*0vvvvvvv Một vài gợi ý nhận đuợc từ hướng dẫn Encoding trên Cứ giống
như vậy để mapping đến hết bảng unicode. Với các encode trên, các tài liệu viết bằng ASCII đương nhiên có dung lượng tối ưu. Dù có rất nhiều ưu thế như trên. Nó luôn luôn nhược điểm. Đó là các kí tự của một số nước mà nằm ngoài khoảng 0x80 ->0x7FF sẽ phải biểu diễn bằng 3 byte. UTF16 ví dụ A -> 65 -> 0x41 -> sẽ đuợc Encode thành 0x0041; B -> 66 -> 0x42 -> sẽ được Encode thành 0x0042. Á -> 0x00C0 -> sẽ đuợc Encode thành 0x00C0. Với phương pháp trên các kí tự ASCII sẽ có số byte gấp đôi. nguồn: kipalog.com |