• Глупый вопрос про CP866

    From Nil A@2:5015/46 to All on Mon Oct 7 19:46:04 2024
    Hello, All!

    Почему нельзя в этом вашем фидо нарисовать все эти сердечки и смайлики из CP866 ниже символа пробела 0x20? https://en.wikipedia.org/wiki/Code_page_866

    Тут на днях в градусах прислали, и значок пропечатывается "61° с.ш.". Т.е. походу можно все эти √ и прочие печатать выше русского, но не ниже.

    Best Regards, Nil
    --- GoldED+/LNX 1.1.5-b20240306
    * Origin: FidoNet member since 1995 (2:5015/46)
  • From Oleg Nazaroff@2:50/700.700 to Nil A on Tue Oct 8 23:20:49 2024
    Hello, Nil A.
    On 07.10.2024 19:46 you wrote:

    Почему нельзя в этом вашем фидо нарисовать все эти сердечки и смайлики из CP866 ниже символа
    пробела 0x20? https://en.wikipedia.org/wiki/Code_page_866 Тут на днях в градусах прислали, и
    значок пропечатывается "61° с.ш.". Т.е. походу можно все эти √ и прочие печатать выше
    русского, но не ниже.

    А ты хоть бы напечатал штоль. Шоб знать что точно пролазит.

    --
    WBR, ON
    --- ХотДог/2.14.5/Android
    * Origin: Somewhere at Russia, in the hut on chicken legs... (2:50/700.700)
  • From Alexey Khromov@2:5030/723 to Nil A on Tue Oct 8 23:49:02 2024
    Здраствуйте, Nil!

    Почему нельзя в этом вашем фидо нарисовать все эти сердечки и смайлики
    из CP866 ниже символа пробела 0x20? https://en.wikipedia.org/wiki/Code_page_866

    Потому что CP866 начинается с 0x80

    А группа ASCII 0x00..0x1F зовется Control characters и терминальными программами не отображается, а приводит к действиям терминала, например табуляции или LineFeed. Режим "ИД СУ" в современных терминальных программах не встречал). Отрисовка данных символов, ЕМИП, в DOS-e проводилась записью в видеопамять в текстовом режиме напрямую.

    В-общем, если пихать эти символы в текст, то его отображение может быть сильно испорчено при выводе средствами стандартных библиотек, которые воспринимают \t и \n именно как управляющие символы.

    Alexey Khromov
    --- GoldED+/LNX 1.1.5-b20240309
    * Origin: - Вы в опасности! Вы окружены роботами! - (2:5030/723)
  • From Nil A@2:5015/46 to Alexey Khromov on Wed Oct 9 03:26:38 2024
    Hello, Alexey!

    08 Oct 24 23:49, from Alexey Khromov -> Nil A:
    Почему нельзя в этом вашем фидо нарисовать все эти сердечки и
    смайлики из CP866 ниже символа пробела 0x20?
    https://en.wikipedia.org/wiki/Code_page_866
    Потому что CP866 начинается с 0x80

    Труъ. До этого это всё пендосный cp437.

    А группа ASCII 0x00..0x1F зовется Control characters и терминальными программами не отображается, а приводит к действиям терминала,
    например табуляции или LineFeed.

    Это я помню. Всякие \r \n там. о почему по сцылке выше на педовики дают в этом месте сердечки. Я хочу сердечки!

    Best Regards, Nil
    --- GoldED+/LNX 1.1.5-b20240306
    * Origin: FidoNet member since 1995 (2:5015/46)
  • From Nil A@2:5015/46 to Alexey Khromov on Wed Oct 9 03:49:42 2024
    Hello, Alexey!

    08 Oct 24 23:49, from Alexey Khromov -> Nil A:

    Почему нельзя в этом вашем фидо нарисовать все эти сердечки и
    смайлики из CP866 ниже символа пробела 0x20?
    https://en.wikipedia.org/wiki/Code_page_866
    Потому что CP866 начинается с 0x80
    А группа ASCII 0x00..0x1F зовется Control characters и терминальными программами не отображается, а приводит к действиям терминала,
    например табуляции или LineFeed.

    Выходит, что в фидо всё врут? Если я ставлю кодировку CP437, то я могу смайлики рисовать, и прочие нотки, которые ДО пробела 0x20? у кроме символа \001, который начинает kludge в фидо, это все знают из FTS-1.

    Звонок другу Чатову https://chatgpt.com/share/6705d315-d1a0-8000-96cd-6dae3b981a24

    I'm looking at code page 437. There are smile characters and other
    "emoji" below the space 0x20 symbol. But as I understand, everything
    under the space symbol are control characters, e.g \n \r line feed and stuff. How can I get those smile characters using cp437 then?

    You're absolutely right that the bytes under 0x20 in code page 437 (CP437) correspond to control characters like line feed (\n), carriage return (\r), etc. These control characters are not directly displayable as symbols or glyphs because they are used for controlling text flow and formatting rather than visual representation.

    However, the smiley faces and other graphical characters you're referring to (like ? and ?) actually start after 0x20, specifically from 0x01 to 0x1F. Normally, these positions in modern character encodings are reserved for control characters, but in CP437 they are mapped to visual symbols.

    To access these smiley characters, you'd need to:
    1. Use the byte values directly from 0x01 to 0x1F when encoding strings using CP437.
    2. Interpret or display them in an environment that understands CP437, such as older DOS systems or software designed to emulate the CP437 font and encoding.

    Here's an example in Python to print those characters by interpreting them as CP437:

    # Python 3 example to print CP437 smiley characters
    smiley_bytes = bytes([0x01, 0x02]) # ? and ? (CP437 values) print(smiley_bytes.decode('cp437')) # Decode using CP437 encoding
    ...


    Кстати, питоновский код реально смайлики рисует.

    --- GoldED+/LNX 1.1.5-b20240306
    * Origin: FidoNet member since 1995 (2:5015/46)
  • From Rinat Sadretdinow@2:5020/620.1 to Nil A on Wed Oct 9 11:54:54 2024
    Hello Nil!

    09 Oct 24 03:49, you wrote to Alexey Khromov:

    Here's an example in Python to print those characters by interpreting
    them as CP437:

    # Python 3 example to print CP437 smiley characters
    smiley_bytes = bytes([0x01, 0x02]) # ? and ? (CP437 values) print(smiley_bytes.decode('cp437')) # Decode using CP437 encoding
    ...

    Кстати, питоновский код реально смайлики рисует.

    АВОТХРЕ! ичего он не рисует, вообще ничего:

    ===
    rhs@sys3175:~$ cat>fafafa.py
    # Python 3 example to print CP437 smiley characters
    smiley_bytes = bytes([0x01, 0x02]) # ? and ? (CP437 values) print(smiley_bytes.decode('cp437')) # Decode using CP437 encoding

    rhs@sys3175:~$ python fafafa.py

    rhs@sys3175:~$
    ===

    Bye!

    --- GoldED+/LNX 1.1.5-b20231106
    * Origin: -= Thunder Bird @ home =- (2:5020/620.1)
  • From Rinat Sadretdinow@2:5020/620.1 to Nil A on Wed Oct 9 11:57:08 2024
    Hello Nil!

    09 Oct 24 03:26, you wrote to Alexey Khromov:

    А группа ASCII 0x00..0x1F зовется Control characters и
    терминальными программами не отображается, а приводит к действиям
    терминала, например табуляции или LineFeed.

    Это я помню. Всякие \r \n там. о почему по сцылке выше на педовики
    дают в этом месте сердечки. Я хочу сердечки!

    арисовать можно всё что угодно. И как правильно было ранее сказано что если прям в экранную память пИсать эти коды, то тогда будут сердкчки. А если через всякие принтфы гнать, то сердечек не будет. А если какой-нибудь XOFF случайно попадётся, который тоже из этих контрольных характеров, то вообще после этого ничего на экране и не увидишь, и напИсать ничего не сможешь пока XON опять же через принтф не зашлёшь или на клавиатуре Ctrl-Q не тыкнешь (я сейчас про нормальные терминалы, а не про не к ночи будет упомянут cmd.exe).

    Bye!

    --- GoldED+/LNX 1.1.5-b20231106
    * Origin: -= Thunder Bird @ home =- (2:5020/620.1)
  • From Vitaliy Aksyonov@1:104/117 to Nil A on Mon Oct 14 21:45:28 2024
    Привет, Nil!

    07 Oct 24 19:46, ты писал(а) All:

    Почему нельзя в этом вашем фидо нарисовать все эти сердечки и смайлики
    из CP866 ниже символа пробела 0x20? https://en.wikipedia.org/wiki/Code_page_866

    Тут на днях в градусах прислали, и значок пропечатывается "61° с.ш.".
    Т.е. походу можно все эти √ и прочие печатать выше русского, но не
    ниже.

    Может потому, что в KOI8-R, которую ты используешь, их нет? ;) Так-то код тупо меняет один байт на другой. Если кодировки, конечно, однобайтовые. ичего не мешает эти все сердечки перекодировать.

    Best regards,
    Vitaliy Aksyonov.

    ... Эпитафия на могиле фидошника: "Меня видно?"
    --- GoldED+/LNX 1.1.5-b20240309
    * Origin: Aurora, Colorado (1:104/117)