丢失换行符-从Base64到UTF-8

时间:2018-11-20 09:53:22

标签: javascript string encoding utf-8 base64

我使用后端服务,该服务以纯文本形式向我发送回base64。

当我在控制台中登录时,在Base64Decode中复制/粘贴,我看到我的字符串包含换行符,这就是我想要的。

但是当我使用函数将此base64字符串转换为UTF-8时,会丢失换行符。

我尝试过的事情:

function b64DecodeUnicode(str) {
  return decodeURIComponent(Array.prototype.map.call(atob(str), function(c) {
       return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)
   }).join(''))
}

此解决方案来自here,但无效。

2 个答案:

答案 0 :(得分:0)

我尝试了here的解决方案,将换行符设为const wrapper = mount(<MyComponent />); expect(wrapper.find('span')).to.have.className('child'); expect(wrapper.find('span')).to.not.have.className('root'); ,它的工作原理是:

\n

答案 1 :(得分:0)

问题是,在将base64解码为UTF-8后,换行字符(ASCII 10)被转换为回车字符(ASCII 13)。

我不知道为什么,也许我在base64解码中丢失了一些东西。