Вот причины, которые, как я помню, были приведены для того, чтобы не делать UTF-8 или другое представление Unicode кодировкой символов по умолчанию для языка сценариев Ruby, который в основном разработан в Японии:
- Причина 1: объединение Хань . Наборы символов (не уверен, что «алфавиты» здесь будут правильными), используемые Китай, Корея и Япония, все связаны, произошли из общей истории, не уверены в деталях. Консорциум Unicode решил использовать только одну кодовую точку Unicode для кодирования всех вариантов (китайский, японский и корейский) одного и того же символа, даже если их внешний вид отличается на всех 3 языках. Их аргументация заключается в том, что внешний вид должен определяться шрифтом, используемым для отображения текста.
Очевидно, что эти рассуждения воспринимаются японскими пользователями настолько же нелепо, насколько это было бы доказательством для английских читателей, что, поскольку латинский алфавит разработан на основе греческого алфавита, достаточно иметь только одну кодовую точку для греческой альфы ». α и латинский «a», и пусть внешний вид определяется используемым шрифтом. (То же самое для "β" = "b", "γ" = "g" и т. Д.)
(Обратите внимание, что я бы не смог включить греческие символы здесь в stackexchange, если бы это было так.)
- Причина 2: неэффективные преобразования символов.
Преобразование символов из Unicode в унаследованные японские кодировки и обратно требует таблиц, т. Е. Не существует простого вычисления из значения кодовой точки Unicode в значение унаследованной кодовой точки и наоборот. Также происходит некоторая потеря информации при преобразовании, поскольку не все кодовые точки в одной кодировке имеют уникальное представление в другой кодировке.
Могло быть дано больше причин, которые я больше не помню.