ВИ
Виталий И Эльвира Кравчун

Для чего нужны остальные кодировки если есть utf-8?

Зачем использовать другие кодировки и в чём их смысл?

Ка
Каришка

Преимущество utf-8 - экономия памяти при хранении Unicode-текстов. Но за это приходится расплачиваться производительностью: вычислить длину строки в символах, заменить символ внутри строки, вырезать подстроку - в utf-8 это затратные по времени операции.

С точки зрения производительности операций над строками наилучшей кодировкой является utf-32. Но за это приходится расплачиваться расходом памяти. Для символов ASCII понадобится в 4 раза больше памяти, чем при использовании utf-8.

Соответственно, в зависимости от задачи выбирается либо utf-8, либо utf-32.

Кодировка utf-16 появилась в те времена, когда в Unicode существовала только нулевая плоскость (коды символов 0x0000-0xFFFF) - и тогда два байта на символ казались разумным выбором. Сейчас utf-16 выглядит анахронизмом, но, к сожалению, отказаться от неё не получится: слишком много софта завязано именно на неё.

Однобайтные кодировки исторически появились за много десятилетий до Unicode, но в современном коде остались, практически, только в консольном софте Windows и в софте, работающем на "голом" железе. Но существует огромное кол-во всё ещё используемого legacy-кода, в котором используются однобайтные кодировки. Например, раскрученные ютубовские "курсы" PHP до сих пор рекламируют Denwer - в который гвоздями вбита кодировка Windows-1251.

Маргарита Зайцева
Маргарита Зайцева

в некоторых случаях UTF-16 и UTF-32 могут быть удобнее для обработки юникода из-за фиксированного количества байтов на символ. Старые национальные кодировки удобнее, если не требуется портирование на другие языки (1 байт - 1 символ).

АМ
Алексей Маширин

самозванец :((!!

КС
Катюска Скапашка

Когда-то давно было достаточно 7 бит на кодирование английских букв (потому что американцы и потому что телеграф, именно этим объясняется странные символы с 0 по 31).
Потом внезапно выяснилось, что есть еще в европейских языках буквы с какими-то умляутами (á, ű, Ř) и закорючками (ç) и специфичными буквами (Þ, Æ, ß, £). Пришлось выделять 8 бит на символ. Так появились т. н. "однобайтовые кодировки", где первая половина была одинаковая для каждой кодировки (английские буквы, цифры, знаки препинания), а вторая была посвящена языковым особенностям (специфические буквы для этого конкретного языка).
Попутно выяснилось, что языков с особенносями несколько и поэтому было несколько кодировок для каждого языка.
Потом американцы внезапно выяснили, что внезапно есть языки, где буквы вообще ни разу не английские и просто дорисовать умляут недостаточно (например, кириллица). Попутно наложились еще и разные исторические мотивы, которые привели к тому, что для русского языка существовало штук шесть различных кодировок.
Пока что было приемлемо: можно было писать на экране компьютера по-английски и на каком-то одном языке (например, кириллическими буквами). Если надо было написать текст на английском, русском и французском, например, то уже надо было исхитрятся, потому что нельзя было смешивать символы из разных кодировок.
Потом внезапно были открыты языки, в которых написание внезапно идет справа налево (المُباح أو الحَلال هو مُصطلح ديني يُستعمل في الفقه الإسلامي للدلالةِ على العَمل الذي لا يُثاب فاعلهُ ولا يُؤثم تاركه، وهو أحد الأحكام الخمسة على الأشياءِ والأفعال وهي الفرضية والاستحباب والإباحة (أو الحِلّ) والكراهة والتحريم. وتطلق أيضاً على الطعام المباح.).
Потом еще более внезапно американцами были открыты языки, где символов более чем 255 (雙方對峙期間,金田的好友島鐵雄因為騎車撞到高志,一個被政府列為機密的超能力者。) и 8 байт просто недостаточно. Там тоже было много чего наделано своего, особенного и не совместимого.
Вот таким вот образом люди пришли к выводу, что приблизительно 16 байт будет достаточно, чтобы закодировать символы всех языков на Земле. Ну потом были еще всякие вариации, что используется переменное число байтов (до 32) - на более широко используемые символы используется меньше символов, на менее используемые - побольше.
Таким образом, теперь человек может написать текст с использованием нескольких языков, в т. ч. которые используют различные системы написания, анпример, тексты на русском, английском, со вставками на немецком и китайском и арабском. Да, теперь это возможно.
Источник: не будет.
Дата: 2020-11-17
Now playing: Reza Khan - Drop of faith (feat. Nils)

Ох
Охренеть

Смысл в том, что когда-то не было utf-8.
И избавиться от того, что было сделано очень трудно.

Похожие вопросы
php сессии и кодировка UTF
Кодировка файлов UTF-8
как перевести кодировку на joomla 1.5 сайта с Windows-1251 в UTF-8
как создать txt с кодировкой Unicode (UTF-8) на win7?
страница, кодировка utf-8, выдает кракозябры. Кодировка файла utf-8 без bom
Как установить кодировку китайских иероглифов в UTF-8? Например русский язык на пиньине будет "э вэнь". А в UTF-8?
Как сохранить кодировку UTF-8 в командной строке
Что за кодировка UTF-8 ?
Есть около 100 html страниц с кодировкой UTF-8. Как их перевести в кодировку windows-1251
как создать txt с кодировкой utf-8 на windows 8. сам не знаю