很多高手可能已知道这个问题了,只是我之前没有 Google 到相关的资料,
为避免有人遇到我遇到的问题,还不知原因,所以记录如下。
在 UNIX 下正常的 UTF-8 文件是没有 BOM 的,但在 Windows 记事本下
一般的 UTF-8 文件都会加上 BOM。加上 BOM 的文件有可能造成 UNIX 下
编辑的错误,因此一些程式设计师在 Windows 下会用 Notepad++ 这类较
进阶的编辑器,并选择档案储存时不加入 BOM。
在 Windows 下储存档案时不加入 BOM,在读取档案时一般都没有问题。
问题是在使用 Windows 的「搜寻(内文)」功能时,就搜寻不到该文档
的内容了!
也就是说,如果我们有一整个目录的文件,里面都是没有 BOM 的纯文字文
件,使用 Windows 档案总管搜寻,加上搜寻内文的设定,会搜寻不到没有
BOM 的 UTF8 文件的内容。
微软的预设就是要加 BOM,但竟然没有 BOM 就无法搜寻,Windows 档案
总管也太逊了。这造成了不少会跨主机处理文件的人的困扰,如果有人遇到
Windows 档案总管搜寻一整个目录下的文件时,有忽略的文件,可查查编
辑器的 BOM 设定罗。
--
寒山问拾得曰:
世间谤我、欺我、辱我、笑我、轻我、贱我、厌我、骗我,如何处治乎?
拾得云:
只是忍他、让他、由他、避他、耐他、敬他、不要理他。再待几年,你且看他。