有时用Google网站管理员工具检查网站的robots.txt,会发现在User-agent前出现一个问号,变成“?User-agent”,因而导致Google检查工具报“语法错误”,但打开robots.txt检查,又会发现根本就没有这个问号存在。
这是由于robots.txt文件编码问题引起的,当用windows自带的记事本保存robots.txt文本文件时,如果编码选择为UTF-8,就有可能出现此现象,特别是中文版操作系统,因为保存成文本的编码并不是单纯的UTF-8,而是UTF-8+BOM(具体的解释可以去网上搜)。
要消除User-agent前的问号,就要改变编码格式,如保存成ANSI编码的文本文件。不过我这么试过另存为ANSI编码的文本,没有成功,而按网上说的从Google网站管理员工具中下载robots.txt,而下载下来的编码就是UTF-8(建议利用Google工具制作成robots.txt,不要在本地编辑修改,直接上传试试,也许也可以解决此问题,可能是因为我编辑过所以没成功)。最后我是从网上找了一个在线消除UTF-8中BOM的工具解决的。
另外网上还有其它的方法:
1、EmEditor软件,先打开任意一个PHP文件,按Alt+回车,选择“文件”的标签,在“打开时的字符码”,选择“UTF-8”,然后关闭EmEditor。以后打开任何PHP文件,只要按Ctrl+S,或者Ctrl+E,就可以保存为UTF-8编码的无BOM文件。
2、EmEditor:“文件→另存为”,字符码选择“UTF-8”,去掉“加入 Unicode 署名”前面的勾,英文网页每次都需要这个操作。同样,中文网页,在第一次另存为之后,以后只要按Ctrl+S即可。EmEditor建议按照前面的方法设置,以后无需每次都使用“另存为”。
3、UltraEdit可以点击“文件→另存为”,格式选择“UTF-8无BOM”,英文网页每次都需要这个操作。否则,在按Ctrl+S时,会被保存为ANSI格式。中文网页,在第一次另存为之后,以后只要按Ctrl+S即可。
以上3点来源:http://www.auiou.com/relevant/00000470.jsp
4、使用Notepad++去除文件中的BOM:使用NotePad++打开文件,然后选择“格式”,再选择“以UTF-8无BOM格式编码”,最后重新保存文件即可。
第4点来源:http://powerclark.javaeye.com/blog/625236
>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/910.html