История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
Мне кажется что ты просто хочешь нарисовать свой шрифт, где байт со значением 1 будет выводить кириллическую А
например. Бери шрифт и рисуй в кодпоинт 1 букву А. Только ты сломаешь всякие ASCII штуки в виде управляющих последовательностей на которые полагается терминал, у терминалов своя спецификация как интерпретировать определённые коды и тебе придётся с этим мирится и это учитывать, хочешь полной свободы по выводу текста, бери OpenGL и делай там (как все инди разработчики со своими движками) свой формат текста, свой формат шрифтов и свои правила для всего, бери то где текста нет и понятия терминал тоже, пиши свой. Некоторые так и делают.
Про терминал программа не знает.
Значит тебе нужно настроить терминал чтобы он знал что в него прилетает, это тоже самое как настроить терминал для UART там может прилетать в качестве завершение строки ‘\n’ а может ‘\r’ а может \r\n
, программа посылающая данные тоже понятия не имеет что такое термпинал она может работать на ATmega какой и просто слать байты в UART задача приёмного терминала быть настроенным и показывать то и в том формате что в него летит, а не белиберду.
Так что либо настраивай терминал дабы он понимал что в него летит либо прям бери и делай специализированный терминал, многие имеют настройки для переключения кодировки, если терминал не понимает твою то тебе не нужно ядро, тебе не нужен Си, тебе нужно реализовать свою кодировку в терминале, например если взять какой старый терминал для иксов то он не поймёт вывод программы в utf-8 и будет выводить мусор, что нужно сделать? Правильно не трогать свою программу, не трогать ядро, а трогать терминал, то через что будет выводится текст.
Если ты хочешь прям разом чтобы все gnome-terminal, xfce4-terminal и прочеи вдруг начали выводить текст в твоей кодировке то либо ты используешь то через что общее (если это так) они обрабатывают ввод/вывод или берёшь например st
и патчишь его под себя добавляя туда свою реализацию своей кодировки. Просто вжух и везде всё заработало, так не выйдет, разве что это везде работает на чём то одном и вот туда ты тоже должен впихнуть свою кодировку, вернее механизм говорящий что вот этот код соответствует вон тому глифу в шрифте.
лёд-9
А где спецификацию на кодировку поглядеть, может оно с ASCII совместимо, а может нет, это сильно большая разница
Исправление LINUX-ORG-RU, :
Мне кажется что ты просто хочешь нарисовать свой шрифт, где байт со значением 1 будет выводить кириллическую А
например. Бери шрифт и рисуй в кодпоинт 1 букву А. Только ты сломаешь всякие ASCII штуки в виде управляющих последовательностей на которые полагается терминал, у терминалов своя спецификация как интерпретировать определённые коды и тебе придётся с этим мирится и это учитывать, хочешь полной свободы по выводу текста, бери OpenGL и делай там (как все инди разработчики со своими движками) свой формат текста, свой формат шрифтов и свои правила для всего, бери то где текста нет и понятия терминал тоже, пиши свой. Некоторые так и делают.
Про терминал программа не знает.
Значит тебе нужно настроить терминал чтобы он знал что в него прилетает, это тоже самое как настроить терминал для UART там может прилетать в качестве завершение строки ‘\n’ а может ‘\r’ а может \r\n
, программа посылающая данные тоже понятия не имеет что такое термпинал она может работать на ATmega какой и просто слать байты в UART задача приёмного терминала быть настроенным и показывать то и в том формате что в него летит, а не белиберду.
Так что либо настраивай терминал дабы он понимал что в него летит либо прям бери и делай специализированный терминал, многие имеют настройки для переключения кодировки, если терминал не понимает твою то тебе не нужно ядро, тебе не нужен Си, тебе нужно реализовать свою кодировку в терминале, например если взять какой старый терминал для иксов то он не поймёт вывод программы в utf-8 и будет выводить мусор, что нужно сделать? Правильно не трогать свою программу, не трогать ядро, а трогать терминал, то через что будет выводится текст.
Если ты хочешь прям разом чтобы все gnome-terminal, xfce4-terminal и прочеи вдруг начали выводить текст в твоей кодировке то либо ты используешь то через что общее (если это так) они обрабатывают ввод/вывод или берёшь например st
и патчишь его под себя добавляя туда свою реализацию своей кодировки. Просто вжух и везде всё заработало, так не выйдет, разве что это везде работает на чём то одном и вот туда ты тоже должен впихнуть свою кодировку, вернее механизм говорящий что вот этот код соответствует вон тому глифу в шрифте.
лёд-9
А где спецификацию на кодировку поглядеть, может оно с ASII совместимо, а может нет, это сильно большая разница
Исходная версия LINUX-ORG-RU, :
Мне кажется что ты просто хочешь нарисовать свой шрифт, где байт со значением 1 будет выводить кириллическую А
например. Бери шрифт и рисуй в кодпоинт 1 букву А. Только ты сломаешь всякие ASCII штуки в виде управляющих последовательностей на которые полагается терминал, у терминалов своя спецификация как интерпретировать определённые коды и тебе придётся с этим мирится и это учитывать, хочешь полной свободы по выводу текста, бери OpenGL и делай там (как все инди разработчики со своими движками) свой формат текста, свой формат шрифтов и свои правила для всего, бери то где текста нет и понятия терминал тоже, пиши свой. Некоторые так и делают.
Про терминал программа не знает.
Значит тебе нужно настроить терминал чтобы он знал что в него прилетает, это тоже самое как настроить терминал для UART там может прилетать в качестве завершение строки ‘\n’ а может ‘\r’ а может \r\n
, программа посылающая данные тоже понятия не имеет что такое термпинал она может работать на ATmega какой и просто слать байты в UART задача приёмного терминала быть настроенным и показывать то и в том формате что в него летит, а не белиберду.
Так что либо настраивай терминал дабы он понимал что в него летит либо прям бери и делай специализированный терминал, многие имеют настройки для переключения кодировки, если терминал не понимает твою то тебе не нужно ядро, тебе не нужен Си, тебе нужно реализовать свою кодировку в терминале, например если взять какой старый терминал для иксов то он не поймёт вывод программы в utf-8 и будет выводить мусор, что нужно сделать? Правильно не трогать свою программу, не трогать ядро, а трогать терминал, то через что будет выводится текст.
Если ты хочешь прям разом чтобы все gnome-terminal, xfce4-terminal и прочеи вдруг начали выводить текст в твоей кодировке то либо ты используешь то через что общее (если это так) они обрабатывают ввод/вывод или берёшь например st
и патчишь его под себя добавляя туда свою реализацию своей кодировки. Просто вжух и везде всё заработало, так не выйдет, разве что это везде работает на чём то одном и вот туда ты тоже должен впихнуть свою кодировку, вернее механизм говорящий что вот этот код соответствует вон тому глифу в шрифте.