
Node:
> Buffer.from('~!@').toString('base64') 'fiFA' Browser:
> btoa('!@#') "IUAj" 看不出有问题啊,黑人问号中...
1 Zzzzzzzzz 2017 年 3 月 7 日 因为上下两个引号里的东西都不一样啊..... |
2 dzxx36gyy 2017 年 3 月 7 日 via Android …… |
3 Jaylee 2017 年 3 月 7 日 水逼 |
4 zhidian 2017 年 3 月 7 日 哎……你在钓鱼吗?输入就不一样。 |
5 doubleflower OP 尼马! 我就说我一定是哪里 SB 了,被这问题搞了半个小时。 |
6 DlYgod 2017 年 3 月 7 日 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 |
7 doubleflower OP @Zzzzzzzzz @dzxx36gyy @Jaylee @zhidian 唉,又过了 10 分钟,才发现代码里的一个 escape 写反错误,是我问错了地方。 其实出问题的是这个小转码库: function fwescape(s) { return s == null ? s : reverse(b64encode(unescape(encodeURIComponent(s)))) } function fwunescape(s) { return s == null ? s : decodeURIComponent(escape(b64decode(reverse(s)))) } function reverse(s) { return s.split('').reverse().join('') } function b64encode(s) { return typeof btoa === 'undefined' ? Buffer.from(s).toString('base64') : btoa(s) } function b64decode(s) { return typeof atob === 'undefined' ? Buffer.from(s, 'base4').toString() : atob(s) } fwunescape(fwescape('abc 我是谁')) === 'abc 我是谁' 主要搞的地方在于,这段代码分别能通过前端浏览器里和后端 NodeJS 里的单元测试! 但是前后端互转英文没问题中文乱码,然后我怀疑是 base64 的问题单独提出来试了一下还不小心写错了测试字串。 |
8 iminto 2017 年 3 月 7 日 兜售近视眼镜 |
9 123s 2017 年 3 月 7 日 我一眼就看到了,原来我被钓鱼了 |
10 guokeke 2017 年 3 月 7 日 via Android ( Д`)y━~~ |
11 wyntergreg 2017 年 3 月 7 日 两次输入按键盘按跑偏了,一次从开始,一次从 1 开始 |
12 50vip 2017 年 3 月 7 日 多年不笑的我,这次笑了~~~ |
13 foru17 2017 年 3 月 7 日 笑了一个下午。 |
14 hisway 2017 年 3 月 7 日 呵呵~ |
15 cloudzqy 2017 年 3 月 7 日 via Android 哈哈哈哈,我真笑了 |
16 neurocomputing 2017 年 3 月 7 日 哈哈哈哈 |