在 Notepad++ 中将 Unicode 值解释为真实字符

在 Notepad++ 中将 Unicode 值解释为真实字符

如果我复制一个 Unicode 编码值作为实际渲染的字符(例如表单这里- 1D400) 并将其粘贴到 Notepad++ 中,它确实将其显示为“粗体”字符。

但是当我尝试在 Notepad++ 中手动将其写入 Unicode 值(输入为 \u1D400)并使用插件 HTML Tag > Decode JS(按照建议)时这个帖子),它不会将其渲染为“粗体”字符……更糟糕的是,它会将其转换成两个不同的字符!

为什么会这样,如何让 Notepad++ 将值转换为与我简单地复制/粘贴已从网页呈现的值时显示的相同的字符视觉效果?

我做错什么了吗?有人能告诉我正确的方法吗?我该如何将实际的 Unicode 值写入 notepad++,然后它会将其转换为正确的字符?

答案1

\u需要正好四位数字;它仅限于 BMP 中的代码点(即最多 U+FFFF)。因此,您的输入将被解码为 U+1D40,后跟常规 0。

我在 Stack Overflow 上发现 JS 的 ES6 版本具有\u{...}更长代码点的语法,但 Notepad++ 插件尚不支持该语法。

(JavaScript 整体上基于 UTF-16,并且仅适用于 16 位代码单元;如果它需要表示非 BMP 字符,则必须使用代理对来完成。许多 Windows 应用程序也是如此,因为 Windows 总体上使用 UTF-16 来支持 Unicode。它们都早于 Unicode 扩展到 U+FFFF 以上的概念——人们曾认为 16 位对每个人都足够了。)

如果您正在编写 HTML,我建议将代码点写为 HTML 实体,例如𝐀(并将其保留在文档中 - 不,不幸的是,NP ++ 插件的“解码 HTML 实体”也不接受这一点 - 它会丢弃 16 位无法容纳的内容并假定为 U+D400。尽管它的 entities.ini 中有大量非 BMP 代码点......)

否则,请使用 Snippets 插件并在其中添加您常用的字符。

相关内容