From d9a303d4e832dfcc7599ae750b8a4258f80ea677 Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 2 Apr 2021 23:16:10 +0800 Subject: fix: Fix base64 bug for unicode string. --- FrontEnd/package-lock.json | 11 +++++++++++ FrontEnd/package.json | 1 + FrontEnd/src/app/http/common.ts | 3 ++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/FrontEnd/package-lock.json b/FrontEnd/package-lock.json index fc342eb4..ecff36f1 100644 --- a/FrontEnd/package-lock.json +++ b/FrontEnd/package-lock.json @@ -16,6 +16,7 @@ "core-js": "^3.10.0", "i18next": "^20.1.0", "i18next-browser-languagedetector": "^6.1.0", + "js-base64": "^3.6.0", "localforage": "^1.9.0", "lodash": "^4.17.21", "pepjs": "^0.5.3", @@ -8383,6 +8384,11 @@ "node": ">=8" } }, + "node_modules/js-base64": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz", + "integrity": "sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg==" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -22748,6 +22754,11 @@ } } }, + "js-base64": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz", + "integrity": "sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", diff --git a/FrontEnd/package.json b/FrontEnd/package.json index 9af1c596..f8ca1d5d 100644 --- a/FrontEnd/package.json +++ b/FrontEnd/package.json @@ -14,6 +14,7 @@ "core-js": "^3.10.0", "i18next": "^20.1.0", "i18next-browser-languagedetector": "^6.1.0", + "js-base64": "^3.6.0", "localforage": "^1.9.0", "lodash": "^4.17.21", "pepjs": "^0.5.3", diff --git a/FrontEnd/src/app/http/common.ts b/FrontEnd/src/app/http/common.ts index 5006109d..78ba3cda 100644 --- a/FrontEnd/src/app/http/common.ts +++ b/FrontEnd/src/app/http/common.ts @@ -1,4 +1,5 @@ import rawAxios, { AxiosError, AxiosResponse } from "axios"; +import { Base64 } from "js-base64"; export const apiBaseUrl = "/api"; @@ -63,7 +64,7 @@ export function setHttpToken(token: string | null): void { export function base64(blob: Blob | string): Promise { if (typeof blob === "string") { - return Promise.resolve(btoa(blob)); + return Promise.resolve(Base64.encode(blob)); } return new Promise((resolve) => { -- cgit v1.2.3