有时,当我将文本复制并粘贴到记事本时,它会以默认的记事本字体和大小粘贴文本,但是,粘贴行的后半部分会小多个字体大小。我很难理解为什么会发生这种情况。
我想知道是否可能是某种类型的隐藏格式被复制到记事本中,但我相信记事本会删除格式。我随后采用了相同的文本并尝试将其复制并粘贴到 URL 栏和 CMD 提示中以去除任何潜在的格式(即使它是从网络复制的纯文本),然后重新粘贴到记事本中,但它仍然留下这种现象.
此外,当调整记事本窗口的大小时,它会更改行的默认大小和缩小的部分,如下面的屏幕截图所示。
这三个窗口实际上是同一个记事本窗口,每个窗口都具有不同的调整大小和由此产生的文本调整大小。
小智 7
我在记事本上遇到了同样的问题。加载文件并以二进制形式分析其内容显示了原因:以小字体字母开头的行包含“EF BB BF”字节顺序标记(参见https://en.wikipedia.org/wiki/Byte_order_mark)。
怎么办:即使在保存文件时,这个标记也会以某种方式保留。某些编辑会导致记事本识别 Unicode,并告诉您如果保存文本,它将丢失。您还可以通过按“删除”键到最开始并删除不可见的“字符”。(字体会瞬间变大。)
这是如何发生的(就我而言):我正在创建带有 Unicode 标记的文本文件,后来对文本行进行了排序并再次保存。字节顺序标记成为放置在文件末尾的一行文本的一部分(不可见标记搞乱了排序顺序),而在文本中间,这个标记只会导致这种效果。
为了实际解释 Uwe 提到的问题:您在这里看到的是 Windows 完成的字体替换。如果要显示的文本不包含您选择的字体中的字符,则 Windows 将尝试在它存在的位置找到一个字符。这对于在拉丁文本中运行中文或阿拉伯语最有帮助,因为 Windows 具有用于某些脚本的特殊字体,并且无论如何没有一种字体可以包含所有脚本¹。
Uwe 提到了字节顺序标记,尽管它不必出现在其 UTF-8 化身中。例如,在 UTF-16 文本文件中,它看起来不同。通常 U+FEFF 不应该出现在文本流的中间,而应该只出现在开头,但它只是一个零宽度空间,因此如果偶尔发生,通常不会造成任何伤害。但是记事本在这里只是遇到了所选字体没有的字符²。因此发现了另一个包含它的字符,并且由于它周围的字符适合当时选择的字体,因此它具有一定的传染性。
这种情况很有趣,因为该字符甚至不可见,但您经常会遇到类似的现象,即只有一个字符以另一种字体呈现:
当然,在这些情况下,很容易看出原因。
1 字体格式限制之一,然后是拉丁字体样式(例如衬线、无衬线、手写等)如何映射到相应脚本的常见问题——即使尝试使用大多数字体通常也无济于事。所以大多数字体至少包含拉丁文、希腊文和西里尔文,因为它们在风格上非常相似,但除此之外很少有人这样做。
2 如前所述,由于字符通常只出现在文本流的开头,然后被剥离(因为它不被视为内容的一部分),因此字体实际上不必具有字形。
归档时间: |
|
查看次数: |
2994 次 |
最近记录: |