当从相同的输入字符串中获取 bas64 编码的字符串时,我发现 JavaScript、Groovy 和 Go 具有相同的结果,但 GNU base64 略有不同。这是为什么?
JavaScript(nodejs v0.10.33):
new Buffer('Laurence Tureaud is Mr. T').toString('base64');
TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==
Groovy(Java 8 上的 2.3.7):
'Laurence Tureaud is Mr. T'.bytes.encodeBase64().toString()
TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==
Go (1.4):
b64.StdEncoding.EncodeToString([]byte("Laurence Tureaud is Mr. T"))
TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==
GNU base64(GNU coreutils 8.12.197-032bb with UTF-8 term charset):
echo 'Laurence Tureaud is Mr. T' | base64
TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVAo=
最佳答案
echo 'Laurence Tureaud is Mr. T'
Echo 在字符串后添加一个换行符。
尝试以下删除换行符:
echo -n 'Laurence Tureaud 是 T 先生' | base64
你得到TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==
关于javascript - 给定相同的输入字符串,为什么这些 base64 编码输出不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30102466/