From aaa97429b999ff82f90dfa24a301602398b3b9ed Mon Sep 17 00:00:00 2001 From: xkeyC <3334969096@qq.com> Date: Thu, 4 Dec 2025 16:27:43 +0800 Subject: [PATCH] feat: update file read --- .../advanced_localization_ui_model.dart | 3 ++- lib/ui/tools/unp4kc/unp4kc_ui.dart | 17 +++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/ui/home/localization/advanced_localization_ui_model.dart b/lib/ui/home/localization/advanced_localization_ui_model.dart index 9083bbf..8d62174 100644 --- a/lib/ui/home/localization/advanced_localization_ui_model.dart +++ b/lib/ui/home/localization/advanced_localization_ui_model.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:convert'; import 'dart:io'; import 'package:fluent_ui/fluent_ui.dart'; @@ -225,7 +226,7 @@ class AdvancedLocalizationUIModel extends _$AdvancedLocalizationUIModel { if (data.length > 3 && data[0] == 0xEF && data[1] == 0xBB && data[2] == 0xBF) { data = data.sublist(3); } - final iniData = String.fromCharCodes(data); + final iniData = utf8.decode(data, allowMalformed: true); return iniData; } catch (e) { final errorMessage = e.toString(); diff --git a/lib/ui/tools/unp4kc/unp4kc_ui.dart b/lib/ui/tools/unp4kc/unp4kc_ui.dart index 26e9c23..2d3f430 100644 --- a/lib/ui/tools/unp4kc/unp4kc_ui.dart +++ b/lib/ui/tools/unp4kc/unp4kc_ui.dart @@ -1,3 +1,4 @@ +import 'dart:convert'; import 'dart:io'; import 'package:file_sizes/file_sizes.dart'; @@ -244,14 +245,14 @@ class _TextTempWidget extends HookConsumerWidget { final textData = useState(null); useEffect(() { - File(filePath) - .readAsString() - .then((value) { - textData.value = value; - }) - .catchError((err) { - textData.value = "Error: $err"; - }); + File(filePath).readAsBytes().then((data) { + // 处理可能的 BOM + if (data.length > 3 && data[0] == 0xEF && data[1] == 0xBB && data[2] == 0xBF) { + data = data.sublist(3); + } + final text = utf8.decode(data, allowMalformed: true); + textData.value = text; + }); return null; }, const []);