Subj : Detecting Terminals To : All From : dingo Date : Wed Mar 20 2024 08:31 am Hello, I was the first to write a BBS that supports UTF-8 and cp437, but we required selecting it manually (x84/default/charset.py script). But I wanted to share with you a technique that I've been using lately that should allow your BBS Softwares to automatically detect the client, using the "Query Cursor Position" sequence, "\x1b[6n". You could also use this to automatically detect for "bots" or "scanners" rather than real users. At least, any bot would have to emulate a terminal to respond correctly. I use this technique to automatically detect the unicode support level of many terminals in my "ucs-detect" tool, "How it works" https://ucs-detect.readthedocs.io/intro.html#how-it-works And the results here, https://ucs-detect.readthedocs.io/results.html In any case, if the "bots" are not responding to this query, you can kick them off. You can detect if they support utf-8, and, whether they support emojis etc. CP437 terminals like SyncTerm will be "corrupted" by utf-8 bytes or display characters incorrectly, and by measuring the delta of the starting and ending position of a character after displaying unicode string, we can determine whether they are utf-8 capable automatically. I could write such a tool if anyone is interested, it would be very easy. Anyway I more highly suggest to use this to kick off "bots", as they can really consume a lot of resources. --- ENiGMA 1/2 v0.0.14-beta (linux; x64; 18.18.2) * Origin: Xibalba -+- xibalba.l33t.codes:44510 (21:1/121) .