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

Rob*_*cks 29 text-editing notepad++ unicode

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

Pet*_*sen 20

问题中描述的问题发生在将空/新文档设置为“ANSI”并将Unicode字符粘贴到其中时。

与空/新文档一起使用时没有任何自动检测,至少在我测试过的 Notepad++ 版本 (v5.4.5) 中没有。“ANSI”是 Notepad++ 中新文档的默认值,除非在菜单SettingsPreferences → tab New Document/Open Save Directory 中设置

解决方案

解决方法是在粘贴前将编码设置为UTF-8,菜单FormatEncode in UTF-8

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

例子

我从 Firefox 中复制了一些文本到一个新的 Notepad++ 文档,俄语 (??????? ????, russkiy yazyk),显示维基百科页面俄语

如果编码从“ANSI”更改,则结果为:

将 Unicode 字符串“Russian (????????? ????, russkiy yazyk”粘贴到新的 Notepad++ 文档中而不更改默认“ANSI”的编码的结果。

如果编码改变了这种结果如下:

在将编码从默认的“ANSI”更改为“UTF-8”后,将 Unicode 字符串“Russian (???????????, russkiy yazyk”粘贴到新的 Notepad++ 文档中的结果。

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

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

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


Dis*_*oat 19

如果文件实际上是用 Unicode 编码的,Notepad++ 应该会自动检测到它。在索拉字体很适合我。您可以尝试以下两个菜单选项之一:

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

我很确定第一个会做你想做的。

  • 对于后代,您需要编码菜单,而不是格式 (2认同)

Jos*_*unt 5

有好消息和坏消息。

好消息: Notepad++ 支持 Unicode(至少从我可以收集到的信息来看)。

坏消息:显然 Unicode 支持仅适用于 Windows XP。

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

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

在此处输入图片说明