当从相同的输入字符串中获取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==

(1.4):
b64.StdEncoding.EncodeToString([]byte("Laurence Tureaud is Mr. T"))
TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==

GNU base64(具有UTF-8术语字符集的GNU coreutils 8.12.197-032bb):
echo 'Laurence Tureaud is Mr. T' | base64
TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVAo=

最佳答案

echo 'Laurence Tureaud is Mr. T'
Echo在字符串后添加换行符。

请尝试以下操作以删除换行符:
echo -n 'Laurence Tureaud is Mr. T' | base64
然后你得到TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==

关于javascript - 给定相同的输入字符串,为什么这些base64编码输出不同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30102466/

10-15 20:37