JavaScript自带的atob()、btoa()默认情况不能正确处理中文。下面代码可用于解码后端传过来的Base64字符串。
/** * 编码base64 */ function Encode64(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) { return String.fromCharCode('0x' + p1); })); } /** * 解码base64 */ function Decode64(str) { return decodeURIComponent(atob(str).split('').map(function (c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }).join('')); } let Value = '2022-11-12' let encodeValue let decodeValue encodeValue = Encode64(Value) // 编码base64 decodeValue = Decode64(encodeValue) // 解码base64 console.log('Value:', Value); console.log('encodeValue:', encodeValue); console.log('decodeValue:', decodeValue);
转载自:https://blog.csdn.net/qq_15957557/article/details/127819292
转载请注明:猫执事 » 浏览器JavaScript处理后端传来的中文Base64编码的数据