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: | digital man |
---|---|
Location: | Riverside County, California |
Users: | 1,064 |
Nodes: | 17 (1 / 16) |
Uptime: | 18:11:37 |
Calls: | 501,325 |
Calls today: | 4 |
Files: | 109,413 |
D/L today: |
1,934 files (169M bytes) |
Messages: | 302,011 |