Ці причини, які я пам'ятаю, були наведені через те, що UTF-8 або інше Unicode не було представлене за замовчуванням кодування символів для мови сценаріїв Ruby, розроблене в основному в Японії:
- Причина 1: Об’єднання Хана . Набори символів (не впевнений, чи "алфавіти" тут би були правильними), що використовуються в Китаї, Кореї та Японії, пов'язані між собою, розвинулися з загальної історії, не впевнені в деталях. Консорціум Unicode вирішив витратити лише одну кодову точку Unicode для кодування всіх варіантів (китайської, японської та корейської) історичного символу, навіть якщо їх зовнішність відрізняється на всіх трьох мовах. Їх міркування полягає в тому, що зовнішній вигляд повинен визначатися шрифтом, який використовується для відображення тексту.
Мабуть, це міркування японськими користувачами сприймається настільки ж смішним, як було б стверджувати англійським читачам, що, оскільки латинський алфавіт склався з грецького алфавіту, достатньо мати лише одну точку коду для грецької альфа " α "та латинська" a ", і нехай зовнішній вигляд визначається шрифтом, який використовується. (Те саме для "β" = "b", "γ" = "g" тощо)
(Зверніть увагу, що я б не зміг включити грецькі символи сюди на stackexchange, якби це було так.)
- Причина 2. Неефективні перетворення символів.
Для перетворення символів з Unicode в застарілі японські кодування та назад потрібні таблиці, тобто немає простого обчислення від значення кодової точки Unicode до старого значення кодової точки і навпаки. Також є певна втрата інформації при перетворенні, оскільки не всі кодові точки в одному кодуванні мають унікальне представлення в іншому кодуванні.
Можливо, було дано більше причин, яких я вже не пам’ятаю.