diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart index 56ee7c7..678676e 100644 --- a/lib/pages/home_page.dart +++ b/lib/pages/home_page.dart @@ -261,9 +261,20 @@ class _HomePageState extends BaseState { final title = (row?['title'] as String?)?.trim() ?? ''; final artist = (row?['artist'] as String?)?.trim() ?? ''; final hasTitle = title.isNotEmpty; + + // path 是百分号编码的(播放时必须保持),显示前要解码, + // 否则没有元数据的收藏会显示成 "13%E6%A5%BC..." 这种不可读串。 + final rawName = path.split('/').last; + String displayName; + try { + displayName = Uri.decodeComponent(rawName); + } catch (_) { + displayName = rawName; + } + items.add(SongItem( path: path, - fileName: path.split('/').last, + fileName: displayName, title: hasTitle ? title : null, artist: artist.isNotEmpty ? artist : null, sourceTag: '收藏',