今天在使用 linux Centos6.2 时候 用svn import导入已有文件,遇到这个问题:
svn: Valid UTF-8 data
(hex:)
followed by invalid UTF-8 sequence
(hex: d5 d5 c6 ac)
很是纳闷,总是在有些文件夹下报错,最后发现这是由于在目录中有中文的文件名,而这个文件名确是用gb2312编码的,只能一个一个目录找,然后删掉它。
这里列出两个方法,一个方法用户找文件,然后直接删掉;另外一个则是找哪个目录下有这个非法文件名
1. 查找中文文件名
find ./ -regexptype “posix-pegrep” -regexp “*/[^a-z0-9]+txt” -exec rm {} /;
这个方法在找到文件后直接删除。如果想看看是哪些文件,则把 -exec rm {} /; 去掉。
2. 查找含有中文的目录
for f in `find . ! -name ‘.’ -type d -prune | egrep -v ‘svn’`; do echo $f; svn update $f; done;
第二个方法没有使用过,有待验证,网上搜集发现 在其他 submit update也可能存在相应问题。