Skip to content

fix: 无法显示 QM 歌单中的特殊字符 - #141

Open
PhantomPixel-0418 wants to merge 1 commit into
SPlayer-Dev:devfrom
PhantomPixel-0418:pr/fix/qm-playlist-special-chars
Open

fix: 无法显示 QM 歌单中的特殊字符#141
PhantomPixel-0418 wants to merge 1 commit into
SPlayer-Dev:devfrom
PhantomPixel-0418:pr/fix/qm-playlist-special-chars

Conversation

@PhantomPixel-0418

Copy link
Copy Markdown
Contributor

改动类型

  • 新功能(feat)
  • 缺陷修复(fix)
  • 重构 / 优化(不改变对外行为)
  • 文档(docs)
  • 其他(请在「改动说明」中注明)

是否包含破坏性变更

  • 是(请在「改动说明」中详细描述)

改动说明

QM(QQ 音乐)接口返回的文本字段(歌单名、歌曲名、专辑名、歌手名、创建者、描述等)中可能包含 HTML 实体编码,如 & 😀(emoji 的十六进制实体)等,直接透传到 UI 会导致原始编码字符串显示出来,影响阅读体验。

  • core/config.ts:新增 decodeName() 工具函数,基于 he 库实现通用 HTML
    实体反转义(支持所有命名实体、十进制和十六进制数字实体),同步在 formatSingerName() 中应用
  • 6 个 QM 模块(song_list / search / album / artist / leaderboard / song_info)中所有字符串字段统一经
    decodeName 处理

新增 he 依赖(^1.2.0)及对应类型声明。

测试情况

去搜索里随便搜一个 要是 QM 的 基本上往下划一划就可以发现带 emoji 或其他的一些

截图 / 录屏

image

自查清单

  • 本 PR 只包含一个主要功能 / 修复,没有夹带无关改动
  • 已在本地完整测试通过;AI 生成的代码同样自行测试并审阅过,未做未经验证的提交
  • 已运行 pnpm format,并确认 pnpm typecheckpnpm lint 通过
  • 改动涉及原生模块时已 pnpm build:native 验证;未手写 native/*/index.d.ts
  • 已向 dev 分支提交

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant