静态页面通过SVN传到服务器上后,有时会出现多余的一段空行。这种现象主要是BOM的问题。但是对BOM的问题如何进行解决呢?关键就是对utf-8+BOM进行删除。上海珍岛SEO培训公司对utf-8+BOM如何删除,进行基本的介绍和分析。
对于我们这个遇到的这个问题,应该说有三个方面需要处理:
1、首先删选出所有的BOM文件
2、去除文件中的BOM
3、SVN能不能进行BOM检测,防止有BOM的文件commit
具体操作步骤:
1、用svn的POST-COMMIT代码,做了程序自动更新至网站发布目录(测试),服务器是linux环境,所以用命令就可以找出所有拥有BOM的文件
查找UTF-8+BOM
shell> grep -r -I -l $'^/xEF/xBB/xBF' 目录
删除BOM
shell> grep -r -I -l $'^/xEF/xBB/xBF' /path | xargs sed -i ‘s/^/xEF/xBB/xBF//;q'
通过查找,你就可以可以找到相应的文件,再进行更改。
2、去除BOM文件,这个比较简单,有很多IDE都能去掉BOM,例如UltraEdit,editplus,vim等等。
3、删除utf-8+BOM以后,还需要进行一些步骤。首先在开发人员SVN上传的时候就提示他,该文件拥有BOM。用过svn的朋友都知道,在版本目录下会有HOOKS目录,里面都是钩子的模板,我们就用pre-commit这个,记得把pre-commit.tmpl改成pre-commit,然后给可执行权限。
#!/bin/sh
REPOS=”$1″
TXN=”$2″
SVNLOOK=/usr/bin/svnlook
FILES=`$SVNLOOK changed -t “$TXN” “$REPOS” | awk ‘/^[UA]/ {print $2}'`
for FILE in $FILES; do
if $SVNLOOK cat -t “$TXN” “$REPOS” “$FILE” | grep -q $'^/xEF/xBB/xBF'; then
echo “Byte Order Mark be found in $FILE” 1>&2
exit 1
fi
done
保存后即可生效,SVNSERVE不需要重启。这样开发人员如果上传BOM文件的时候,就会提示上传失败,需要重新上传。
新闻热点
疑难解答