export LANG=ZH_cn.GBK
nohup /home/jdk1.6.0_17/bin/java -Dfile.encoding=GBK -Xms200m -Xmx400m -classpath "/home/icehome/search2010/classes" -Djava.ext.dirs=/home/icehome/search2010/lib com.tmg.search.service.indexer.IndexSpider &

在startIndexer2010.sh中添加环境变量-Dfile.encoding=GBK    问题解决。

其原因在于String.getBytes()时实际调用StringCoding.encode(value, offset, count)方法,其中使用默认编码Charset.defaultCharset().name()。defaultCharset从环境变量 file.encoding中取值。

故设置环境变量-Dfile.encoding=GBK 改变默认编码