如何在 Notepad++ 中编辑 Unicode 文本?
有时我编辑包含Unicode字符的英文文本。由于某些原因,在我的电脑上,Notepad++会将Unicode字符转换为???,从而破坏文本并丢失所有数据。我正在寻找一种方法来编辑这样的文本,同时保留Unicode字符。我使用 Consolas 作为我的字体。如果字体中没有这些字符,为什么当我从Notepad++中复制文本时(通过Windows的剪贴板)会丢失数据?
有时我编辑包含Unicode字符的英文文本。由于某些原因,在我的电脑上,Notepad++会将Unicode字符转换为???,从而破坏文本并丢失所有数据。我正在寻找一种方法来编辑这样的文本,同时保留Unicode字符。我使用 Consolas 作为我的字体。如果字体中没有这些字符,为什么当我从Notepad++中复制文本时(通过Windows的剪贴板)会丢失数据?
当一个空的/新的文档被设置为 “ANSI",并且Unicode字符被粘贴到其中时,问题中描述的问题就会发生。
在空/新文档中使用时,没有任何自动检测功能,至少在我测试的Notepad++版本(v5.4.5)中没有。"ANSI "是Notepad++中新文档的默认值,除非在菜单设置 →首选项 →新文档/打开保存目录选项卡中设置。
解决方法
解决方法是在粘贴前将编码设置为 UTF-8 ,菜单Format → Encode in UTF-8。
例子
我从Firefox复制了一些文本到一个新的Notepad++文档中,Russian (русский язык, russkiy yazyk),显示维基百科页面 俄语 _。
如果编码没有从 "ANSI "中改变,结果是:
如果编码被改变,结果是:
如下图所示(【西里尔语】(http://en.wiktionary.org/wiki/Cyrillic#Adjective)部分被高亮显示),Notepad++实际上将Unicode字符转换为ASCII 63(十六进制3F),即问号。这就是为什么当通过剪贴板复制文本时,Unicode字符会丢失(在"ANSI”模式下)(这不是字体问题–信息丢失)。
在以下设备上测试过。Notepad++ v5.4.5 (UNICODE).
如果文件是用Unicode编码的,Notepad++应该会自动检测到它。Consolas字体对我来说很好用。你可以试试这两个菜单选项中的一个。
我很确定第一个选项可以满足你的要求。