本帖最后由 タユタイ 于 2023-2-4 02:03 编辑
`♫` 是数字字元参引,不是乱码。客户端画面输入时成功显示符号是因为浏览器使用了 UTF-8 编码,认得该字元参引。
但将帖文发送给后端的请求中它的 Header 里并没有将 Charset 设置为 UTF-8,故系统在生成 URI 时并没有将符号作为整体进行百分比编码,而是使用 HTML 认得的字元参引进行了百分比编码。

喵玉论坛使用的是 GBK 字符的服务端渲染,所以在服务端返回画面时未必能正常渲染 UTF-8 中的字元参引。(可以看到返回的画面中 `&` 也被解码为了字元实体参引,但是客户端依然成功渲染为了 `&`。)

但是 GBK 中应当也有音符对应的编码,未能显示为音符的原因是字符串在传输到后端时已经是字元参引的状态了。
简单调查了一下,如果不考虑修改既存数据,解决这个问题也需要安装 UTF-8 版的 discuz(或者手动修改源代码),并且还涉及到数据库中编码的修改,是否对应还需进一步组内讨论。目前因为 discuz 的程序设计过于古早,已经启动了新版论坛的开发。所以应该不会积极对应需要大幅度修改 discuz 的此类问题。
|