diff --git a/lib/view/page/backup.dart b/lib/view/page/backup.dart index ee71a2d0..cec6a5d9 100644 --- a/lib/view/page/backup.dart +++ b/lib/view/page/backup.dart @@ -360,7 +360,13 @@ final class _BackupPageState extends ConsumerState with AutomaticKee onTap: () async { final data = await context.showImportDialog(title: l10n.snippet, modelDef: Snippet.example.toJson()); if (data == null) return; - final str = String.fromCharCodes(data); + String str; + try { + str = utf8.decode(data); + } on FormatException catch (e, s) { + context.showErrDialog(e, s, libL10n.error); + return; + } final (list, _) = await context.showLoadingDialog( fn: () => Computer.shared.start((s) { return json.decode(s) as List; @@ -588,7 +594,13 @@ extension on _BackupPageState { void _onBulkImportServers(BuildContext context) async { final data = await context.showImportDialog(title: l10n.server, modelDef: Spix.example.toJson()); if (data == null) return; - final text = String.fromCharCodes(data); + String text; + try { + text = utf8.decode(data); + } on FormatException catch (e, s) { + context.showErrDialog(e, s, libL10n.error); + return; + } try { final (spis, err) = await context.showLoadingDialog(