Base64는 Javascript 객체를 인코딩합니다.
AWS Kinesis용 base-64로 인코딩하고 싶은 큰 Javascript 오브젝트가 있습니다.알고 보니 다음과 같습니다.
let objStr = new Buffer(JSON.stringify(obj), 'ascii');
new Buffer(objStr, 'base64').toString('ascii') !== objStr
나는 이것을 가능한 한 단순하게 유지하려고 노력하고 있다.
어떻게 하면 Base-64로 JSON을 인코딩하여 원래 값으로 안전하게 디코딩할 수 있습니까?
문자열에서 Base-64로
var obj = {a: 'a', b: 'b'};
var encoded = btoa(JSON.stringify(obj))
디코딩을 실제로 되돌리려면
var actual = JSON.parse(atob(encoded))
참고용으로 여기를 보세요.
https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding
당신이 오해한 것은Buffer(str, [encoding])
컨스트럭터,encoding
작성에 사용된 인코딩을 컨스트럭터에 알립니다.str
또는 컨스트럭터가 디코딩에 사용하는 부호화str
바이트 배열로 변환합니다.
기본적으로는Buffer
class는 바이트 스트림을 나타냅니다.문자열에서 문자열로 변환하는 경우에만 인코딩이 컨텍스트에 들어갑니다.
대신,buffer.toString("base64")
버퍼 콘텐츠의 base-64 부호화를 취득합니다.
let objJsonStr = JSON.stringify(obj);
let objJsonB64 = Buffer.from(objJsonStr).toString("base64");
오브젝트를 base64로 변환할 때 latin range 문제에서 벗어나 문자 비활성화 오류가 발생하였습니다.
저는 아래 라인으로 프로젝트를 진행했습니다.
를 포함하다base64
그리고.utf8
다음과 같이 노드 패키지에 액세스합니다.
var bytes = base64.encode(utf8.encode(JSON.stringify(getOverviewComments())));
버퍼를 사용하여 JSON/Base64에서 쉽게 인코딩 및 디코딩할 수 있습니다.
JSON에서 Base64로:
function jsonToBase64(jsonObj) {
const jsonString = JSON.stringify(jsonObj)
return Buffer.from(jsonString).toString('base64')
}
Base64에서 JSON:
function encodeBase64ToJson(base64String: string) {
const jsonString = Buffer.from(base64String,'base64').toString()
return JSON.parse(jsonString)
}
atob()
그리고.btoa()
오래된 것이므로 더 이상 사용할 수 없습니다.
언급URL : https://stackoverflow.com/questions/38134200/base64-encode-a-javascript-object
'programing' 카테고리의 다른 글
Wordpress 프로젝트 옆에 있는 Laravel 프로젝트(public_html 폴더에 있음) (0) | 2023.03.29 |
---|---|
쉼표를 사용하여 NSString을 분할합니다. (0) | 2023.03.29 |
포스트그레스 집약함수에서의 DISIGNITY ON (0) | 2023.03.19 |
사용자 지정 포트에 Wordpress 다중 사이트(네트워크)를 설치할 수 없음 (0) | 2023.03.19 |
체크아웃 후 주문 데이터 가져오기 (0) | 2023.03.19 |