Суррогатная область была добавлена в Unicode 2.0, чтобы расширить код за пределы 65536 кодовых точек при сохранении совместимости с существующим 16-битным представлением.Чтобы закодировать 20 битов, необходимых для представления 1048576 новых кодовых точек, им потребовалось 1024 символа, чтобы представить первые 10 бит, и 1024, чтобы представить вторые 10 бит (они использовали 2048 символов вместо 1024, чтобы обеспечить самосинхронизацию кода),Для эффективности распознавания символов было бы лучше, если бы все 2048 имели общий (двоичный) префикс.
Я могу только догадываться, что они хотели подтолкнуть этот необычно предназначенный блок к более высоким, чем более низким кодовым точкам.Блоки 0xE000–0xE7FF, 0xE800–0xEFFF и 0xF000–0xF7FF уже были зарезервированы для области «личного пользования», а 0xF800–0xFFFF также частично зарезервированы для частного использования и частично использованы для других кодов.Таким образом, 0xD800–0xDFFF был бы самым высоким доступным блоком.