我一直在网上查找basE91的计算方法.我发现资源,比如这一个指定用于特定值的字符,但无处有我发现我如何获得该值.
我已经尝试将输入值更改为二进制并采用6位和7位的块,但这些不起作用,我得到错误的输出.我不希望代码能为我这样做,因为我自己编写代码,我只想知道将字符串编码为basE91所需的过程.
所有基于SMTP的电子邮件都可以提供与电子邮件的兼容性.所谓的与电子邮件的兼容性是将任意8位数据字节串或由电子邮件传输的任意位流数据转换为有限ASCII的字符串.对后者的主要限制是:
(a)字符必须是可打印的;
(b)字符不是控制字符或" - "(连字符).
共有94个这样的ASCII字符,它们相应的数字编码是从32到126的整数,除了45.以这些ASCII字符编写的电子邮件与Internet标准SMTP兼容,并且几乎可以在所有电子邮件系统中传输.
注意:45是连字符的ASCII值.
注意:我刚才发现该提案源自中国(ZL00112884.1)和美国(US6859151B2)的专利.
但我也阅读了有关SMTP 的RFC 5321,我找不到任何使连字符成为可打印ASCII范围的独有限制的内容.
注意:可打印的ASCII范围是:
!"#$%&'()*+, - ./ 0123456789 :; <=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\] ^ _` abcdefghijklmnopqrstuvwxyz {|}〜
为什么Base91提案/专利声称" - "(连字符)是电子邮件兼容性的唯一限制?
我如何使用 NodeJS 将下面的字符串从 basE91 解码为可读文本?
\n\n8D7Hh-9D*.n-!DZrG-#DE-$DD-%DC-sl-tl-BEp2m-CE^Ul-DE}CH-EEE-FED-GEC-<l-=l-hE(.K-iEvqS-jEB-kEB-lEB-mEB-Rm-Sm-%E!{Q-&EDgN-(EG:K-)EE-*EE-+EB-xm-ym-GF{}U-HF()Q-IFt%D-JFE-KFB-LFD-[m-]m-mF;JG-nF7]Q-oF2-pFB-qFC-rFB-Wn-Xn-+FD-,FE-.FB- FE-:FD-;FC-2n-3n-\n
Run Code Online (Sandbox Code Playgroud)\n\n* 编辑 *
\n\n使用 basE91 表,我设法将上面的字符串转换为十六进制字符串
\n\n十六进制字符串
\n\n5668557210457684246110336890114713568693668683768671151081161086669112501096769948510868691567726969697069687169676010861108104694046751056911811383106696610769661086966109696682109810937693312381386968103784069715875416969426969436966120109121109717012312585727040418173701637687470697570667670689110993109109705974711107055938111170501127066113706711470668711088104370684470694670664770695870685970675011051110\n
Run Code Online (Sandbox Code Playgroud)\n\n然后我将其输入缓冲区
\n\nvar buf = new Buffer(hex, 'hex');\nconsole.log(buf.toString('utf8'));\n
Run Code Online (Sandbox Code Playgroud)\n\n这给了我:
\n\nVhUr\xe2\x96\xbaEv?$a\xe2\x96\xba3h?\xe2\x97\x84G\xe2\x80\xbcV??f??v?q\xc2\xa7\xe2\x96\xba?\xe2\x96\xac\xe2\x96\xba?f?\xe2\x86\x95P\xe2\x96\xba?v?Hhi\xe2\x86\x95Vw&???\xe2\x99\xa0??\xe2\x96\xac?va\xe2\x96\xba?\xe2\x99\xa6i@Fu\xe2\x96\xbaV?\xe2\x86\x91\xe2\x97\x8481\xe2\x99\xa0if\xe2\x96\xbav?if\xe2\x96\xba??h! ?\xe2\x96\xba??1#?8ih\xe2\x96\xba7?\xe2\x99\xa0?\xc2\xa7?T\xe2\x96\xac??&??6?a \xe2\x96\xba?!\xe2\x96\xba?\xe2\x86\xa8\xe2\x98\xba#\xe2\x86\x95XW'\xe2\x99\xa6\xe2\x99\xa6\xe2\x86\x91\xe2\x86\xa87\xe2\x98\xba\xe2\x96\xac7htpiupfvph?\xe2\x96\xba?1 \xe2\x96\xba?\xe2\x99\xa3?G\xe2\x97\x84\xe2\x96\xbap U??\xe2\x97\x84\xe2\x86\xa8\xe2\x99\xa3\xe2\x98\xba\xe2\x86\x95pf\xe2\x97\x847\xe2\x99\xa0q\xc2\xb6pf??\xe2\x96\xbaCphDpiFpfGpiXphYpgP\xe2\x97\x84\xe2\x99\xa3\xe2\x97\x84\xe2\x96\xba\n
Run Code Online (Sandbox Code Playgroud)\n\n我如何将其转化为我可以使用的东西?我怀疑它是一个 JSON 对象......
\n