環境
- Mac OS X Lion
- Java 7
- 元ファイルは素性のしれないxlsx
- Excel 2011
経緯
素性のしれないxlsxをExcelでcsvにした
こんな読み込みをしていて
こんな例外が
こんな例外が
java.nio.charset.MalformedInputException: Input length = 1
元のファイルを見てみる
$ file --mime fuga.csv
fuga.csv: text/plain; charset=unknown-8bit
unknownとかいっちゃってる。
sublime Textで、UTF-8 で保存しなおす。
$ file --mime fuga.csv
fuga.csv: text/plain; charset=utf-8
わーい。
これで読み込めた。
追記
そもそもなんだけど、Excelでcsv出力すると、S-JIS(固定)らしい。
別件で、InputStream扱うときに
BufferedReader br = new BufferedReader(new InputStreamReader(hoge.getInputStream(), "SJIS"));
List<String> stringList = new ArrayList<>();
while(br.ready()) {
stringList.add(br.readLine());
}
br.close();
とかで読み込みできた。
ちなみに、hogeはSpringのMultipartFileです。