有时我会编辑包含 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 编码:
例子
我将一些文本复制到新的 Notepad++ 文档中,俄语 (русский язык, russkiy yazyk),来自 Firefox,显示维基百科页面俄语。
如果编码是不是从“ANSI”更改后的结果如下:
如果编码是改变后的结果如下:
如下图所示(西里尔部分突出显示),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 编码配合使用。