Làm thế nào là mã hóa ký tự liên quan đến phông chữ?


11

Ý tôi là, một phông chữ có phải hỗ trợ mã hóa ký tự không? Hay một mã hóa ký tự phải hỗ trợ mọi phông chữ?

Phông chữ Unicode có nghĩa là gì? chúng có phải là phông chữ chỉ hỗ trợ Unicode và chúng không hỗ trợ windows-1252?


Câu trả lời:


7

Để bắt đầu với những điều cơ bản, mọi thứ đều dựa trên US-ASCII, đó là mã 7 bit với 128 điểm mã trong tập hợp, được đánh số từ 00 đến 7F hoặc thập phân 0-127. Điều này được ánh xạ để kiểm soát mã, chữ và số tiếng Anh và các ký tự dấu chấm câu cơ bản

Thêm 1 bit vào mã này cho mã 8 bit (byte) sẽ cho chúng ta thêm 128 điểm mã hoặc ASCII mở rộng.

Các bộ ký tự / trang mã được yêu cầu sớm để thay đổi cách mã điểm trong 128 bit trên được ánh xạ thành các ký tự để bao phủ bảng chữ cái cho ngôn ngữ cụ thể mà bạn muốn trình bày. Điều này hoạt động hợp lý tốt cho hầu hết các ngôn ngữ Tây Âu. ISO 8859-1 / Latin-1 là một ví dụ về bộ ký tự như vậy. Một cái khác là Windows-1252 có các thay đổi từ ISO 8859-1 để giúp nó bao gồm nhiều hoặc nhiều ký tự khác nhau.

Các ngôn ngữ có bộ ký tự phức tạp hơn như tiếng Trung, tiếng Nhật và tiếng Hàn vượt quá khả năng của bộ mã điểm 256 và sử dụng mã hai byte để cho phép biểu diễn chúng.

Unicode UTF-8 là sơ đồ mã hóa ký tự nhiều byte (1-4 byte) với khả năng tương thích ngược với ISO 8859-1 / Latin-1 là 128 ký tự đầu tiên. Nó có chỗ cho hơn 1 triệu điểm mã, có nghĩa là mỗi điểm mã thực sự có thể đại diện cho một ký tự, không giống như việc tạo ra xung quanh được thực hiện với Extended ASCII, có nghĩa là một điểm mã ánh xạ tới một ký tự khác nhau, tùy thuộc vào bộ ký tự / trang mã / mã hóa.

Phông chữ là glyphs được ánh xạ tới các điểm mã và đại diện trực quan cho các ký tự. Nội dung của một phông chữ phụ thuộc vào ngôn ngữ ban đầu được dùng để che. Bạn có thể sử dụng Bản đồ ký tự để xem glyphs có trong phông chữ.

Phông chữ Unicode không nhất thiết phải bao gồm tất cả các điểm mã, bạn cần xem chúng được sử dụng ở đâu. Ví dụ, trong Windows 7, kích hoạt Bản đồ nhân vật và xem các nhân vật trong Calibri và sau đó so sánh chúng với Ebrima, Meiryo và Raavi. Lưu ý rằng chúng rất khác nhau vì mỗi cái được điều chỉnh theo một khu vực địa lý khác nhau.

Đối với phông chữ Unicode và bộ ký tự Windows-1252, Windows sử dụng bảng ánh xạ để dịch Windows-1252 sang Unicode trong đó không khớp với ISO 8859-1 cho kịch bản "Phù hợp nhất" trong đó một số ký tự trong ký tự Windows-1252 thiết lập có thể không hiển thị.


5

Bộ ký tự

Một bộ ký tự là một tập hợp các ký tự, mỗi ký tự được gán một số.

Một bộ ký tự nổi tiếng là ASCII. Đây là một bộ gồm 128 ký tự được đánh số từ 0 đến 127. Tất cả các số này có thể được biểu thị bằng 7 bit (do đó nó là một bộ ký tự 7 bit)

Hầu hết nhưng không phải tất cả các bộ ký tự khác bao gồm bộ ASCII có cùng số. Ví dụ về các bộ ký tự không giống ASCII bao gồm EBCDIC. Ngoài ra còn có các biến thể châu Âu trên ASCII có các ký tự khác nhau ở các vị trí nhất định (ví dụ: bao gồm £)

Mã hóa

Các bộ ký tự lớn như Unicode, với hơn một triệu ký tự, sẽ yêu cầu ba hoặc bốn byte cho mỗi ký tự để chứa các dải số lớn đã được gán cho các ký tự. Thay vào đó, họ sử dụng một hệ thống cho phép số đó được "mã hóa" thành một, hai, ba hoặc nhiều byte. Với sơ đồ mã hóa UTF-8, các ký tự giống như các ký tự ASCII tình cờ được mã hóa bằng các byte đơn có cùng giá trị byte như trong ASCII.

Các bảng mã trên được sử dụng khi lưu trữ văn bản trong các tệp.

Kiểu chữ

Một kiểu chữ là một thiết kế cụ thể của biểu diễn trực quan (nghĩa là hình dạng) cho một tập hợp các ký tự. Các hình dạng được gọi là glyphs. Một kiểu chữ có thể có một số glyphs cho một ký tự (xem xét "a"). Nó có thể có glyphs cho các cặp ký tự được gọi là chữ ghép (ví dụ "ff" hoặc "fi"). Trong một kiểu chữ tập hợp các ký tự, do đó glyph đã được thiết kế, do đó thường khác với bộ ký tự trong các bộ ký tự nổi tiếng (kiểu chữ thường không bao gồm glyphs cho các ký tự điều khiển ASCII).

Phông chữ

Trong ngữ cảnh của máy tính, phông chữ có nghĩa là một tệp chứa glyphs được sắp xếp theo một số sơ đồ đánh số (thường không giống với cách đánh số trong bất kỳ bộ ký tự nổi tiếng nào). Trong lịch sử có các phông chữ được ánh xạ bit đại diện cho một kích thước cụ thể (tính bằng pixel hoặc điểm) của một kiểu chữ. Hiện nay hầu hết các phông chữ sử dụng các đường cong toán học để mô tả glyphs và do đó có thể được thu nhỏ để thể hiện bất kỳ kích thước nào của kiểu chữ.

Để tất cả chúng cùng nhau

Khi bạn hiển thị một tệp văn bản, máy tính phải được thông báo (hoặc đoán) mã hóa được sử dụng trong tệp. Sau đó, nó sẽ sử dụng một cách đánh số khác (ví dụ biến thể Unicode 16 bit) để thể hiện văn bản trong bộ nhớ, sau đó nó sẽ sử dụng thông tin trong tệp phông để ánh xạ biểu diễn bên trong sang đánh số (mã hóa) được sử dụng trong tệp phông chữ.


3

Có một phông chữ phải hỗ trợ mỗi mã hóa ký tự?

Không. Tôi không biết nếu có thực sự làm.
Điều đó có nghĩa là họ sẽ có mọi nhân vật có thể tưởng tượng "trong đó". Các phông chữ phổ biến nhất chúng tôi sử dụng để hỗ trợ mã hóa văn hóa phương Tây (tiếng Latin).

Hay một mã hóa ký tự phải hỗ trợ mọi phông chữ?

Theo một cách nào đó, mã hóa ký tự không "hỗ trợ" bất cứ điều gì, vì vậy đây thực sự là cách nhìn sai.

Phông chữ Unicode có nghĩa là gì? Có phải chúng là phông chữ chỉ hỗ trợ Unicode và chúng không hỗ trợ windows-1252?

Unicode là một tiêu chuẩn (hoặc ít nhất là cố gắng trở thành một), có hỗ trợ cho một số lượng lớn các ký tự, do đó làm cho rất nhiều bảng mã trở thành một tập hợp con của chính nó. Windows 1252 hoặc CP1252 là một mã hóa có các ký tự Latin cộng với một số ký tự trung tâm châu Âu. Hầu hết những người được "bao phủ" bởi unicode là tốt. Hầu như tất cả các phông chữ unicode cũng bao gồm, CP1252.


1
Unicode rõ ràng là một tiêu chuẩn, được đánh số ISO 10646.
MSalters
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.