如果我将 Unicode 编码值复制为实际呈现的字符(例如此处的形式- 1D400)并将其粘贴到 Notepad++ 中,它确实将其显示为“粗体”字符。
但是,当我尝试在 Notepad++ 中手动将其写入为 Unicode 值(键入为 \u1D400)并使用插件 HTML Tag > Decode JS(如本文建议)时,它不会将其呈现为“粗体”字符。 .更糟糕的是,它会将其转换为不同的 2 个字符!
为什么会这样,以及当我简单地复制/粘贴已经从网页呈现的值时,如何使 Notepad++ 将值转换为与它显示的相同的字符视觉效果?
难道我做错了什么?谁能告诉我正确的方法,如何简单地将实际的 Unicode 值写入记事本++,然后它将其转换为正确的字符?
\u
期望正好四位数字;它仅限于 BMP 中的代码点(即最大为 U+FFFF)。因此,您的输入被解码为 U+1D40 后跟常规 0。我在 Stack Overflow 上发现 ES6 版本的 JS 具有
\u{...}
更长代码点的语法,但 Notepad++ 插件尚不支持。(JavaScript 整体上基于 UTF-16,仅适用于 16 位代码单元;如果需要表示非 BMP 字符,则必须使用代理对来完成。许多 Windows 应用程序也是如此,因为 Windows 总体上使用 UTF-16 来支持 Unicode。它们都早于 U+FFFF 之上扩展的 Unicode 概念——16 位曾经被认为对每个人来说都足够了。)
如果您正在编写 HTML,我建议将代码点编写为 HTML 实体,例如
𝐀
(并将其保留在文档中 - 不,不幸的是 NP++ 插件的“解码 HTML 实体”也不接受这一点 - 它会丢弃那些不接受的内容不适合 16 位并假定 U+D400。尽管它的Entity.ini 中有大量非 BMP 代码点...)否则,请使用 Snippets 插件并在其中添加常用字符。