※ 引述《JohnnyDell (强尼戴尔)》之铭言:
: Update:
: 最后改用别的solution了 因为原本那招也卡在
: OutputStream就是进不去CSV2TableLayout..
: 改用 org.apache.commons.io.input.BOMInputStream
: 在一开始从servlet读进来的Stream就直接exclude掉BOM
: 不过缺点是只能处理UTF-8 BOM,对于UTF-16跟UTF-32就一样会被炸到
你需要开两次stream..
ServletFileUpload已经把上传放进档案了,
所以你可以开两次去处理
第一次判断BOM.. 用你的BOMInputStream就可以判断了
第二次再重开Stream.
有BOM的Skip两个bytes
再丢到你要的那个Class的contructor
没有得就直接处理.
然后我刚刚看你的那个class
在判断encoding后
再用setCharset去设定charset
例如"UTF-16BE" 或 "UTF-16LE" 或 "UTF-8"