aes加密 base格式,解密时报错Malformed UTF-8 data

aes加密 base格式,解密时报错Malformed UTF-8 data
网上搜了几个方法都不管用,解密报错Malformed UTF-8 data,本地写html测试加密解密时可以用的。

 // AES解密方法
    function decrypt(word) {
      debugger;
      // AES.decrypt是解密函数
      if (word) {
        // 将需要解密的文件Base64字符串转成WordArray对象
        let base64 = CryptoJS.enc.Base64.parse(word)
        // 将WordArray对象转成Base64字符串
        let src = CryptoJS.enc.Base64.stringify(base64)
        // iv偏移向量,mode加密模式,padding填充方式,传Base64字符串和加密秘钥给.AES.decrypt解密方法 
        var decrypt = CryptoJS.AES.decrypt(src, key, {
          iv: iv,
          mode: CryptoJS.mode.CBC,
          padding: CryptoJS.pad.ZeroPadding
        })
        // wordArray对象转成16进制字符串
        var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8)
        // console.log(decryptedStr.toString())
        return decryptedStr.toString()
   
      } else {
        return word
      }
    };

"该回答引用ChatGPT"
可参考下面的解决方案 ,如果可行 还请点击 采纳,感谢!
此错误是因为解密后的数据不是合法的UTF-8格式导致的。
可以尝试使用下面的代码来修复此错误:

var decryptedStr = CryptoJS.enc.Hex.stringify(decrypt)
decryptedStr = decodeURIComponent(escape(hex2a(decryptedStr)))

在解密函数的最后加入上述代码,将解密出的十六进制字符串转成字符串,再通过decodeURIComponent和escape函数将其转换成可读的字符串。