React:"DOMException: String contains an invalid character" 在 base64 中编码时出错
React : "DOMException: String contains an invalid character" error while encoding in base64
我遇到了一种新的错误,我有点被困在这里了。我的应用程序中有一个轻量级代码编辑器,我将其内容(由用户键入)发送到我的后端,并以 base64 对其进行编码。
首先我使用了 codeContent.toString("base64");
方法,它对这种测试内容非常有效:
let numberTest = 52;
let arrayTest = [63, 24, 75];
let sumTest = numberTest + arrayTest[0];
这里的问题是,当我想从 API 中检索此代码时,我无法将其解码回 UTF-8,我得到了一些乱码。
所以我尝试了这个方法:atob(codeContent);
。在这种情况下,如果我输入一个简单的文本,如:test
,编码版本看起来不错 (µë-
),但在我的 POST 之后,我的后端中的内容仍然是空的。如果我用像 let testNumber = 52;
这样的简单 JS 行来尝试这个,那么我会得到这个错误:“DOMException: String contains an invalid character”
总结一下:我有点迷茫,将我的文本编码为 base64 并在之后检索它的好方法是什么?
我的问题是我对 atob 和 btoa 的理解有误:我认为 btoa 是从 base64 解码的,但事实恰恰相反。
所以,编码为 base64 :
btoa(unescape(encodeURIComponent(str)));
并解码base64 :
decodeURIComponent(escape(window.atob(str)));
我遇到了一种新的错误,我有点被困在这里了。我的应用程序中有一个轻量级代码编辑器,我将其内容(由用户键入)发送到我的后端,并以 base64 对其进行编码。
首先我使用了 codeContent.toString("base64");
方法,它对这种测试内容非常有效:
let numberTest = 52;
let arrayTest = [63, 24, 75];
let sumTest = numberTest + arrayTest[0];
这里的问题是,当我想从 API 中检索此代码时,我无法将其解码回 UTF-8,我得到了一些乱码。
所以我尝试了这个方法:atob(codeContent);
。在这种情况下,如果我输入一个简单的文本,如:test
,编码版本看起来不错 (µë-
),但在我的 POST 之后,我的后端中的内容仍然是空的。如果我用像 let testNumber = 52;
这样的简单 JS 行来尝试这个,那么我会得到这个错误:“DOMException: String contains an invalid character”
总结一下:我有点迷茫,将我的文本编码为 base64 并在之后检索它的好方法是什么?
我的问题是我对 atob 和 btoa 的理解有误:我认为 btoa 是从 base64 解码的,但事实恰恰相反。 所以,编码为 base64 :
btoa(unescape(encodeURIComponent(str)));
并解码base64 :
decodeURIComponent(escape(window.atob(str)));