debi12345 писал(а):Даже если устройство "понимает" напрмер CP866 или ISO8859-5 ? Эти преобразования не относятся к языку
А для чего это относить к доп.коду и доп.библиотекам? Если это все прекрасно и более качественно решается на уровне компилятора, особенно конвертация строковых констант (зачем их конвертить в реалтайме?).
15 лет назад я очень активно писал на ассемблере, применял там широко макросы, которые обеспечивали циклы, условия и т.п., т.е. метки самому не приходилось ставить вообще, в этом смысле код не сильно был сложнее паскаля. Основной гемор был со строками и математикой, и был вынужден вернуться с асма на паскаль. Вернулся именно на паскаль, а не на С++, как раз ради того, чтобы не думать при работе со строками.
Вот есть целочисленные типы данных: smallint (int16), integer (int32), int64. Мы легко делаем преобразования между этими типами, не используя вызовов лишних функций, компилятор это делает сам. Со строками в разных кодировках тоже самое.