有时我会编辑包含Unicode字符的英文文本。出于某种原因,在我的PC上,Notepad ++将Unicode字符转换为???,从而破坏了文本并丢失了所有数据。我正在寻找一种在保留Unicode字符的同时编辑此类文本的方法。我使用Consolas作为我的字体。如果字体没有所有这些字符,为什么将文本从Notepad ++中复制出来(通过Windows剪贴板)时丢失数据?
有时我会编辑包含Unicode字符的英文文本。出于某种原因,在我的PC上,Notepad ++将Unicode字符转换为???,从而破坏了文本并丢失了所有数据。我正在寻找一种在保留Unicode字符的同时编辑此类文本的方法。我使用Consolas作为我的字体。如果字体没有所有这些字符,为什么将文本从Notepad ++中复制出来(通过Windows剪贴板)时丢失数据?
Answers:
当将空/新文档设置为“ ANSI”,并且将Unicode字符粘贴到其中时,就会发生问题中描述的问题。
与空/新文档一起使用时,没有任何自动检测功能,至少在我在(v5.4.5)上对其进行测试的Notepad ++版本中没有。除非在菜单“设置” → “首选项” → “ 新建文档/打开保存目录”选项卡中进行设置,否则在记事本中,“ ANSI”是默认值。
解
解决方案是在粘贴之前将编码设置为UTF-8,菜单格式 → 在UTF-8中编码:
例
我复制了一些文本到一个新的记事本文档++,俄罗斯(русскийязык,购买russkiy yazyk) ,从Firefox显示维基百科页面俄语。
如果编码未从“ ANSI”更改,则结果为:
如果更改了编码,则结果如下:
如下图所示(西里尔字母部分突出显示),Notepad ++实际上将Unicode字符转换为ASCII 63(十六进制3F)问号。这就是为什么通过剪贴板复制文本时,Unicode字符会丢失(在“ ANSI”模式下)的原因(这不是字体问题-信息丢失)。
经过以下测试:Notepad ++ v5.4.5(UNICODE)。
有好消息也有坏消息。
好消息: Notepad ++支持Unicode(至少从我的了解中可以)。
坏消息:显然,Unicode支持仅在Windows XP上。
实际上,我面前没有Windows计算机。据我所知,“格式”菜单下的某个地方有一个“编码”菜单。实际上,Unicode的编码通常是UTF-8。
这是Notepad ++中Unicode支持的“漂亮”图片,