Щось давно мене бентежить, це те, що стільки програмного забезпечення використовують терміни «charset» та «кодування» як синоніми.
Коли люди посилаються на "кодування" унікоду, вони завжди означають набір правил для представлення символів унікоду у вигляді послідовності байтів - як ASCII або UTF-8. Це здається розумним та інтуїтивним; ідея полягає в тому, що ви "кодуєте" ці символи у вигляді байтів, використовуючи вказаний набір правил.
Оскільки ці набори правил іноді надають лише можливість "кодувати" деякий підмножина всіх символів Unicode, ви можете уявити, що "набір символів" - короткий для "набору символів" - означатиме просто набір символів Unicode - без будь-якого врахування того, як ці символи закодовані. Таким чином, кодування означатиме схему (кодування типу ASCII, у якого є лише правила для кодування 128 символів, буде асоційовано із набором цих 128 символів), але для кодування не повинно бути кодування (наприклад, UTF-8, UTF -16 і UTF-32 - всі різні кодування, але можуть кодувати один і той же набір символів).
Однак - і ось суть мого питання - використання слова "charset" у реальному світі не відповідає тому, що означала б конструкція слова. Він майже завжди використовується для позначення "кодування".
Наприклад:
charset
Атрибут в HTML використовується для вказівки кодуванняCharset
s на Java - це кодуванняcharset
s іcharacter sets
в MySQL, знову ж таки, кодування
Скільки років цього цікавого (не) використання мови, і як з'явилося це контрінтуїтивне визначення поняття "charset"? Є чи можливо , походить від часу , коли дійсно був , на практиці, відображення взаємно-однозначне відповідність між кодуваннями в використанні і наборами символів вони підтримуються? Або був якийсь особливо впливовий стандарт чи специфікація, яка диктувала це визначення цього слова?
charset
раніше, ніж стандарт Unicode, тому, хоча це не могло бути "зіставленням один на один", символи, необхідні для документа, як правило, змушували вибір кодування. Але я не