欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

base64 轉(zhuǎn)json報錯

夏志豪2年前11瀏覽0評論

在進行數(shù)據(jù)傳輸或者存儲中,我們常常需要對二進制數(shù)據(jù)進行編碼和解碼。Base64 是一種常用的編碼方式,它可以將任意二進制數(shù)據(jù)轉(zhuǎn)換成一組可打印的ASCII字符。

在 JavaScript 中,我們可以使用btoa()atob()方法進行 Base64 編碼和解碼。而在傳輸數(shù)據(jù)時,我們經(jīng)常需要將數(shù)據(jù)轉(zhuǎn)換成 JSON 格式,這樣便于傳輸和解析。但是,在將 Base64 編碼的數(shù)據(jù)轉(zhuǎn)換成 JSON 格式時,有可能會出現(xiàn)報錯。

// Base64 編碼的數(shù)據(jù)
const base64Str = "SGVsbG8sIHdvcmxkIQ==";
// 將 Base64 編碼的數(shù)據(jù)轉(zhuǎn)換成 Object 類型
const obj = {
message: atob(base64Str)
};
// 將 Object 類型的數(shù)據(jù)轉(zhuǎn)換成 JSON 格式
const jsonStr = JSON.stringify(obj);

上面的代碼,將一個 Base64 編碼的字符串轉(zhuǎn)換成了 Object 類型,并將其封裝成了一個 JSON 格式的字符串。但是,如果 Base64 編碼的字符串中包含了非 ASCII 字符,則上述代碼會出現(xiàn)報錯。

這是因為 JSON 字符串中只能包含 ASCII 字符,而 Base64 編碼的字符串中可能包含非 ASCII 字符。所以,在轉(zhuǎn)換成 JSON 格式前,需要將 Base64 編碼的字符串先轉(zhuǎn)換成 URI 編碼。

const base64Str = "5ZKS56Wl5a2Q5Y62";
const uriStr = encodeURIComponent(atob(base64Str));
const obj = {
message: uriStr
};
const jsonStr = JSON.stringify(obj);

上面的代碼,將 Base64 編碼的字符串先轉(zhuǎn)換成 URI 編碼,再進行 JSON 格式化,就可以避免報錯了。