平时在家用浏览器查看一些技术文档或博客文章,看到代码里夹着<、 这样的符号,总觉得怪怪的。其实这些就是HTML字符实体,它们不光是写网页时的工具,在打印网页内容时也常常暗中起作用。
为什么打印时会遇到字符实体
比如你想打印一篇教程里的代码示例,结果发现打印出来的文本里出现了©而不是©,或者空格变成了一串 。这是因为网页源码为了正确显示特殊字符,用了HTML实体来代替。大多数浏览器能自动渲染它们,但有些打印机或打印预览模式处理不好这些转换,就原样输出了代码。
像版权符号 ©、注册商标 ®、引号 “” 这些,在HTML里通常写作 ©、®、“ 和 ”。如果你直接复制粘贴到文本编辑器再打印,可能就会带上这些“代码味”的标记。
常见字符实体对照表
下面是一些常出现在网页中、容易在打印时出问题的HTML字符实体:
< < // 小于号
> > // 大于号
& & // 和号
" " // 双引号
' ' // 单引号
// 不换行空格
© © // 版权符号
® ® // 注册商标
€ € // 欧元符号
¥ ¥ // 日元/人民币符号
怎么避免打印出错
最简单的办法是:别直接复制网页源码。如果是在浏览器里看文档,先用“打印预览”功能看看效果。如果发现符号不对劲,可以尝试右键“另存为PDF”,让系统先完整解析页面,再进行打印。
还有一种情况是自己写网页做打印模板,比如收据、标签之类。这时候要特别注意空格和特殊符号。比如连续多个空格在HTML里会被合并成一个,想保留就得用 。但反过来,如果打印时看到一串 没被转义,那可能是样式或脚本没加载完就打印了。
家里的老式打印机对网页支持有限,有时连基本的Unicode都处理不好。这时候用字符实体反而更保险。比如用¥代替直接输入¥,能确保大部分设备都能正确打出价格符号。
小技巧:快速替换字符实体
要是真碰上了满屏 的情况,也不用一行行手动改。打开记事本或VS Code,把文本粘进去,用查找替换功能:
查找:
替换:(输入一个空格)
查找:<
替换:<
查找:>
替换:>
这样处理完再打印,看起来就干净多了。
下次打印网页前,留意一下那些不起眼的小符号,说不定背后就藏着几个HTML字符实体在捣鬼。