如何在 Notepad++ 中编辑 Unicode 文本?

如何在 Notepad++ 中编辑 Unicode 文本?

有时我会编辑包含 Unicode 字符的英文文本。出于某种原因,在我的 PC 上,Notepad++ 会将Unicode 字符变成???,从而破坏文本并丢失所有数据。我正在寻找一种方法来编辑此类文本,同时保留 Unicode 字符。我正在使用康索拉作为我的字体。如果字体没有所有这些字符,为什么当我从 Notepad++ 复制文本(通过 Windows 剪贴板)时会丢失数据?

答案1

如果文件实际上是用 Unicode 编码的,Notepad++ 应该会自动检测它。Consolas 字体对我来说效果很好。您可以尝试以下两个菜单选项之一:

  • 编码->使用 UTF-8 编码
  • 编码->转换为 UTF-8

我很确定第一个会满足你的要求。

答案2

问题中描述的问题发生在空/新文档设置为“ANSI”,并且统一码字符被粘贴到其中。

当使用空文档/新文档时,不会自动检测,至少在我测试的 Notepad++ 版本 (v5.4.5) 中不会。除非在菜单中设置,否则 Notepad++ 中新文档的默认设置是“ANSI”设置优先→ 标签新建文档/打开保存目录

解决方案

解决方法是将编码设置为UTF-8粘贴前,菜单格式使用 UTF-8 编码

即将执行菜单命令“菜单格式/UTF-8 编码”

例子

我将一些文本复制到新的 Notepad++ 文档中,俄语 (русский язык, russkiy yazyk),来自 Firefox,显示维基百科页面俄语

如果编码是不是从“ANSI”更改后的结果如下:

将 Unicode 字符串“Russian (русский язык, russkiy yazyk)”粘贴到新的 Notepad++ 文档中,而不更改默认“ANSI”的编码。

如果编码改变后的结果如下:

将 Unicode 字符串“Russian (русский язык, russkiy yazyk)”粘贴到新的 Notepad++ 文档中后,将编码从默认的“ANSI”更改为“UTF-8”。

如下图所示(西里尔部分突出显示),Notepad++ 实际上将 Unicode 字符转换为 ASCII 63(十六进制 3F),问号。这就是为什么 Unicode 字符会丢失(在“ANSI”模式)通过剪贴板复制文本时(这是不是字体问题 - 信息丢失)。

该文档的十六进制视图的屏幕截图

测试平台:Notepad++ v5.4.5 (UNICODE)。

答案3

有好消息也有坏消息。

好消息:Notepad++ 支持 Unicode(至少据我所知)。

坏消息:显然,Unicode 支持仅在 Windows XP 上。

我面前实际上没有 Windows 机器。据我记得,在 Format 菜单下某处有一个 Encoding 菜单。Unicode 的编码实际上最常见的是 UTF-8。

这是 Notepad++ 中 Unicode 支持的“漂亮”图片,

在此处输入图片描述

答案4

这对我有用:

我把字体改成了快递新品在我的 PC 上的样式配置器中(Windows 7 带有英语/美国字符集,罗马尼亚语为非 Unicode 集)。它与 Courier New 和 Tahoma 字体 + UTF-8 编码配合使用。

相关内容