add unicode alphabets and extended ascii

This commit is contained in:
Lewis Moten
2024-05-09 13:09:31 -04:00
parent ccbd93d336
commit 44bebd3456

View File

@@ -92,7 +92,39 @@ const packetReceivedBits = [];
const packetUninterlievedBits = []; const packetUninterlievedBits = [];
const packetDecodedBits = []; const packetDecodedBits = [];
let packetDataByteCount = -1; let packetDataByteCount = -1;
const EMOJI_CHARS = [ const UNICODE_TEXT = [
'\u0041', // Latin
'\u0410', // Cyrillic
'\u0391', // Greek
'\u05D0', // Hebrew
'\u0627', // Arabic
'\u0905', // Devanagari
'\u0E01', // Thai
'\u3042', // Japanese Hiragana
'\u30A2', // Japanese Katakana
'\uAC00', // Korean Hangul
'\u10D0', // Georgian
'\u0531', // Armenian
'\u4E00', // Chinese
'\u0F40', // Tibetan
'\u0985', // Bengali
'\u0A85', // Gujarati
'\u0A05', // Gurmukhi
'\u0C85', // Kannada
'\u1780', // Khmer
'\u0E81', // Lao
'\u0D05', // Malayalam
'\u1000', // Myanmar
'\u0D85', // Sinhala
'\u0B85', // Tamil
'\u0C05', // Telugu
'\u1200', // Amharic
'\u1000', // Burmese
'\u0C85', // Kannada
'\u0B05', // Oriya
'\u0D85' // Sinhala
];
const UNICODE_EMOJI = [
"\u{1F600}", "\u{1F601}", "\u{1F602}", "\u{1F923}", "\u{1F603}", "\u{1F604}", "\u{1F605}", "\u{1F606}", "\u{1F600}", "\u{1F601}", "\u{1F602}", "\u{1F923}", "\u{1F603}", "\u{1F604}", "\u{1F605}", "\u{1F606}",
"\u{1F609}", "\u{1F60A}", "\u{1F60B}", "\u{1F60E}", "\u{1F60D}", "\u{1F618}", "\u{1F617}", "\u{1F619}", "\u{1F609}", "\u{1F60A}", "\u{1F60B}", "\u{1F60E}", "\u{1F60D}", "\u{1F618}", "\u{1F617}", "\u{1F619}",
"\u{1F61A}", "\u{1F61B}", "\u{263A}", "\u{1F642}", "\u{1F60F}", "\u{1F60C}", "\u{1F61C}", "\u{1F61D}", "\u{1F61A}", "\u{1F61B}", "\u{263A}", "\u{1F642}", "\u{1F60F}", "\u{1F60C}", "\u{1F61C}", "\u{1F61D}",
@@ -109,10 +141,22 @@ const EMOJI_CHARS = [
"\u{1F47E}", "\u{1F916}", "\u{1F4A9}", "\u{1F608}", "\u{1F4A4}", "\u{1F525}", "\u{1F4A3}", "\u{1F52E}", "\u{1F47E}", "\u{1F916}", "\u{1F4A9}", "\u{1F608}", "\u{1F4A4}", "\u{1F525}", "\u{1F4A3}", "\u{1F52E}",
"\u{1F4A2}", "\u{1F4A1}", "\u{1F6A8}", "\u{1F3B6}", "\u{1F519}", "\u{1F5E8}", "\u{1F4F3}", "\u{1F4F1}", "\u{1F4A2}", "\u{1F4A1}", "\u{1F6A8}", "\u{1F3B6}", "\u{1F519}", "\u{1F5E8}", "\u{1F4F3}", "\u{1F4F1}",
"\u{1F4F2}", "\u{1F514}", "\u{1F3A4}", "\u{1F4F9}", "\u{1F4F7}", "\u{1F4F8}", "\u{1F4F4}", "\u{1F4F6}", "\u{1F4F2}", "\u{1F514}", "\u{1F3A4}", "\u{1F4F9}", "\u{1F4F7}", "\u{1F4F8}", "\u{1F4F4}", "\u{1F4F6}",
"\u{1F3AF}", "\u{1F4FD}", "\u{1F4FC}", "\u{1F4E5}", "\u{1F3AF}", "\u{1F4FD}", "\u{1F4FC}", "\u{1F4E5}"
];
const ASCII_CHARS = new Array(255)
.fill(0)
.map((_, code) => String.fromCharCode(code))
.filter((_, code) =>
// printable ascii
(code >= 32 && code <= 126) ||
// extended ascii (accented letters, currency, etc.)
(code >= 160 && code <= 255)
);
const PRINTABLE_CHARS = [
...UNICODE_EMOJI,
...ASCII_CHARS,
...UNICODE_TEXT
]; ];
const PRINTABLE_CHARS = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`-=~!@#$%^&*()_+[]\\{}|;':\",./<>?".split('');
PRINTABLE_CHARS.push(...EMOJI_CHARS);
function randomCharacter() { function randomCharacter() {
const index = Math.floor(Math.random() * PRINTABLE_CHARS.length); const index = Math.floor(Math.random() * PRINTABLE_CHARS.length);