From 48c474ed3ab7e83bd833cca2dd01b04981d4e953 Mon Sep 17 00:00:00 2001 From: Tusooa Zhu Date: Sat, 16 Jul 2022 11:15:08 -0400 Subject: [PATCH] Fix non-8bit string export problem --- package.json | 1 + src/services/export_import/export_import.js | 4 +++- yarn.lock | 5 +++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index e97523d04b..f8336e33bb 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "punycode.js": "2.1.0", "qrcode": "1", "ruffle-mirror": "2021.12.31", + "utf8": "^3.0.0", "vue": "^3.2.31", "vue-i18n": "^9.2.0-beta.34", "vue-router": "4.0.14", diff --git a/src/services/export_import/export_import.js b/src/services/export_import/export_import.js index ac67cf9c52..7fee0ad33f 100644 --- a/src/services/export_import/export_import.js +++ b/src/services/export_import/export_import.js @@ -1,9 +1,11 @@ +import utf8 from 'utf8' + export const newExporter = ({ filename = 'data', getExportedObject }) => ({ exportData () { - const stringified = JSON.stringify(getExportedObject(), null, 2) // Pretty-print and indent with 2 spaces + const stringified = utf8.encode(JSON.stringify(getExportedObject(), null, 2)) // Pretty-print and indent with 2 spaces // Create an invisible link with a data url and simulate a click const e = document.createElement('a') diff --git a/yarn.lock b/yarn.lock index 2119475d4e..8e62c2458a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10065,6 +10065,11 @@ use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" +utf8@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"