英文电子书使用字典查词时选中整段的解决方法

昨天,一个小伙伴向书友提出了一个问题。他在用 Kindle 设备阅读 Calibre 转换两本英文电子书时,发现它们在查词时表现不同。其中一本可以正常查字,而另一本不能。他们只能选择一整段。

▲ 只能选择整段,不能正常查询单词

在获得了这两本电子书的样本并仔细比较了它们的源代码后,元数据和文本内容都没有发现任何异常。但无论如何转换,单词检查问题总是会再次出现,这真的令人困惑。

最后,为了进行更彻底的比较测试,我从这两本书中选择了一段,并将其转换为电子书。有趣的现象出现了,一段不能正常检查单词,另一段可以正常检查单词。可以推测,问题必须在于文本内容。

但这两段似乎没有什么不同。当我同时选择这两段时,我突然发现它们的空间看起来有点不同。我使用的编辑器是 Sublime Text,当选择正常空间时,应显示为·”,而查词有问题的段落的空格却显示为空(如下图所示)。在确认异常空格的 HTML 实体后,终于发现了问题的症结。

与汉字不同,英语单词必须有空格才能有意义,但在 HTML 空间可分为多种,其中最常见的是普通 ASCII 空格,编辑或阅读时,当一行空间不能容纳下一个单词时,会自动更改到下一行。此外,还有一个特殊的空格,被称为不改变空格(Non-breaking space)这个空间会阻止行的自动变化。编辑或阅读时,当一行空间不足以显示时,会破坏单词的完整性,以字母为单位折叠。

在某些情况下些情况下适用,如100 km100和km之间加一个不换行的空间,这样当一行的行尾空间不能容纳这个计量单位时,100 km100将被放在下一行的行首,而不会出现在上一行的100km发生在下一行。如果所有应该使用普通空间的地方都被不改变空间所取代,那就是滥用不改变空间。虽然这种滥用并不常见,但由于编辑器或输入法等事故,仍有可能发生。

   

       

           

           

       

       

           

           

元素名称 Non-breaking space(不换行空间)
字符实体:
阅读剩余
THE END