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
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
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.
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 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
I could write such a tool if anyone is interested, it would be very easy.
| Sysop: | Eric Oulashin | 
|---|---|
| Location: | Beaverton, Oregon, USA | 
| Users: | 104 | 
| Nodes: | 16 (0 / 16) | 
| Uptime: | 02:43:15 | 
| Calls: | 7,076 | 
| Calls today: | 18 | 
| Files: | 9,223 | 
| U/L today: | 
  				1  				files  				 (236K bytes)  | 
  		
| D/L today: | 
  				2,599  				files  				 (1,066M bytes)  | 
  		
| Messages: | 373,781 | 
| Posted today: | 4 |