JavaScript的GUID base64转换似乎并没有工作
我尝试在Node.js中由于某些原因在base64string中转换GUID
我的function是
function encode(guid) { let buffer = new Buffer(guid.replace(/-/g, ""), 'hex'); let ret = buffer.toString('base64'); ret = ret.replace(/\//g, "_").replace(/\+/g, "-"); return ret.substring(0,22); //FIXME } function decode(encoded_string) { let buffer = new Buffer(encoded_string + '==', 'base64'); let ret = buffer.toString('hex'); ret = ret.replace(/_/g, "/").replace(/-/g, "+"); return ret; }
我用guid ='c9a646d3-9c61-4cb7-bfcd-ee2522c8f633'
结果是'yaZG05xhTLe_ze4lIsj2Mw'
也很好解码(没有短划线)。
但是,根据http://guid-convert.appspot.com/
转换后的结果是'00 amyWGct0y/ze4lIsj2Mw=='。
我相信我可能做错了什么,但找不到我做错了什么。
Javascript将string格式的GUID转换为Base64
当你是Big Endian的时候,你可以检查你的转换和结果是否一致,所以我不认为这是一个大问题。