- Код: Выделить всё
writeln(UTF8ToConsole(Symbol));
Если так, то нужно:
- Код: Выделить всё
writeln(UTF8ToConsole(AnsiToUTF8(Symbol)));
Чуть выше, для того чтобы всё-таки запихнуть русский символ в 1 байт, было предложено воспользоваться кодировкой windows-1251, UTF8ToAnsi как раз и преобразует строку из UTF-8 в windows-1251 (на русской Windows).
В windows-1251 кириллические символы занимают 1 байт и без проблем умещаются в char. Но поскольку у функции UTF8ToConsole на входе должна быть строка в utf-8, то придётся сконвертировать windows-1251 обратно в utf-8, а уже затем в кодировку системной консоли (UTF8ToConsole).
Александр Яшин писал(а):Здесь я как раз и имел в виду, что "Если в бочонке было меньше литра (читай "< 128") -- наше счастье"
Это для латиницы. А для кириллицы в бочонке уже два литра, и в литровую банку их не залить. Единственный вариант -- преобразовать воду во что-то другое (UTF8ToAnsi).