Нет проблем со смешанным 1-2-байтовым
потоковый характер, потому что
все использует 2 байта.
Не совсем так. UTF-8 представляет собой кодирование со смешанной шириной 1, 2, 3 и 4 байта. Возможно, вы думали о UTF-16, но даже в нем некоторое время были 4-байтовые символы. Если вы хотите & ldquo; простой & rdquo; кодировка фиксированной ширины, вам нужен UTF-32.
Ты бы никогда не увидел? и другие случайные
символы на старых веб-страницах
Даже на веб-страницах UTF-8 у вас все еще может не быть шрифта , который поддерживает все символы Unicode, поэтому это все еще проблема.
Больше символов может быть представлено в
UTF-8.
Иногда это недостаток. Наличие большего количества символов означает, что для кодирования символов требуется больше битов. И отслеживать, какие из них являются буквами, цифрами и т. Д. И хранить шрифты для отображения этих символов. И иметь дело с дополнительными сложностями, связанными с Unicode, такими как нормализация.
Это, вероятно, не проблема для современных компьютеров с гигабайтами оперативной памяти, но не ожидайте, что ваш TI-83 будет поддерживать Unicode в ближайшее время.
Но, тем не менее, если вам действительно нужны эти дополнительные символы, работать с UTF-8 гораздо проще, чем с ним, чем иметь миллионы различных 8-битных кодировок символов (плюс несколько самосинхронизирующиеся восточноазиатские многобайтовые кодировки).
Так почему же нет низших кодировок?
был обстрелян из космоса?
По большей части это связано с тем, что & ldquo; низший & rdquo; Языки программирования не были обстреляны из космоса. Много кода все еще написано на таких языках, как C и C ++ (и даже на COBOL!), Которые предшествовали Unicode и до сих пор не имеют хорошей поддержки для него.
I плохо хотелось бы избавиться от ситуации, когда некоторые библиотеки используют строки на основе char
, закодированные в UTF-8, в то время как другие считают, что char
для устаревших кодировок, а Unicode всегда должен использовать wchar_t
а затем вам нужно разобраться, является ли wchar_t
UTF-16 или UTF-32 (или ни тем, ни другим).