LINUX.ORG.RU

История изменений

Исправление sena, (текущая версия) :

Ну основная идея надеюсь понятна? Вместо того чтобы делать одну кодировку на все языки, оставить (как раньше) кучу кодировок, но при этом добавить префикс переключения языка. Это логично, потому что тексты и строки обычно содержат в основном длительные последовательности символов на одном языке. Это позволит сэкономить память.

Дальше уже вопрос, как это сделать лучше, потому что есть несколько вариантов.

Например можно зарезервировать одно значение байта (допустим 255 или 0, но ноль плохо потому что 0 уже используется в С для обозначения конца строки), который будет запрещён к использованию во всех языках и будет обозначать что за ним идёт код переключения языка.

Таким образом, если первый байт строки будет не 255, то по-умолчанию мы может интерпретировать её как ascii, пока не встретится 255. Это даст совместимость с ascii текстами. А если мы встретим в тексте 255, то должны будем прочитать код языка из последующих байт.

Есть и другие варианты, если зарезервировать несколько значений, а не одно.

Исходная версия sena, :

Ну основная идея надеюсь понятна? Вместо того чтобы делать одну кодировку на все языки, оставить (как раньше) кучу кодировок, но при этом добавить префикс переключения языка. Это логично, потому что тексты и строки обычно содержат в основном длительные последовательности символов на одном языке. Это позволит сэкономить память.

Дальше уже вопрос, как это сделать лучше, потому что есть несколько вариантов.

Например можно зарезервировать одно значение байта (допустим 255 или 0, но ноль плохо потому что 0 уже используется в С для обозначения конца строки), который будет запрещён к использованию во всех языках и будет обозначать что за ним идёт код переключения языка.

Таким образом, если первый байт строки будет не 255, то по-умолчанию мы может интерпретировать её как ascii, пока не встретится 255. Это даст совместимость с ascii текстами. А если мы встретим в тексте 255, то должны будем прочитать код языка из последующих байт.

Есть и другие варианты.