When POI reads a spreadsheet, it uses the operating system's default character encoding to process the data. This presents a problem when reading UTF-8 characters on a platform that defaults to a different encoding. It would be useful to provide a way to set the encoding. The code that processes the data is at line 156 of poi/hssf/record/UnicodeString.java. I replaced field_3_string = new String(data, 3, getCharCount()); with try { field_3_string = new String(data, 3, getCharCount(), "ISO-8859-1"); } catch(Exception ex) { field_3_string = new String(data, 3, getCharCount()); } to read my spreadsheet. A method to set the encoding would be wondeful.
Grab a recent nightly build. Its been fixed and will make the next prod release (2.0)