Для кодирования в алфавитно-цифровой строке вы должны использовать буквенно-цифровую кодировку. Некоторые популярные включают шестнадцатеричные (base16), base32, base 36, base58 и base62. Альтернативы hexadecimal используются, потому что больший алфавит приводит к коротким закодированным строкам. Вот некоторые данные:
- Hexadecimal популярен, потому что он очень распространен.
- Base32 и Base36 полезны для кодирования без учета регистра. Base32 более читабельна для людей, потому что он удаляет некоторые простые письма. Base32 используется в играх и для лицензионных ключей.
- Base58 и Base62 полезны для кодирования с учетом регистра. Base58 также разработан, чтобы быть более читаемым человеком, удаляя несколько простых писем. Base58 используется Flickr, Bitcoin и другими.
В NodeJS шестнадцатеричной кодировке является natively supported, и может быть сделано следующим образом:
// Encode
var hex = new Buffer(string).toString('hex');
// Decode
var string = new Buffer(hex, 'hex').toString();
Важно отметить, что существуют различные реализации некоторых из них. Например, Flickr и Bitcoin используют различные реализации Base58.
Что будет ваша входная строка выглядит? Также, что вы подразумеваете под 'only содержит буквенно-цифровые символы?? Строка ввода содержит не буквенно-цифровые символы? – arunatebel
Да, строка ввода может содержать любой символ, а выходная строка должна содержать только буквенно-цифровые символы. – Pensierinmusica
Какова ваша цель для преобразования строк? –