在我的应用程序中,我正在通过CSVParser解析ISO 8859-1格式的数据。但是当我将解析后的数据存储到String数组中时,然后与数据库中相应的ISO 8859-1格式化数据进行交叉检查,字符串数组不支持某些字符映射(例如:μ编码为?)。这是我的解析代码:
CSVReader reader;
List<String[]> list = new ArrayList<String[]>();
try {
reader = new CSVReader(new InputStreamReader(new FileInputStream(new File(directory))), Configuration.CSV_SEPERATOR);
list = reader.readAll();
for (String[] singleStock : list) {
}
String [] singleStock,用于保存已解析的数据。
答案 0 :(得分:4)
您需要在创建CharSet
时指定InputStreamReader示例:
new InputStreamReader(new FileInputStream(new File(directory)),Charset.forName("ISO-8859-1"))
答案 1 :(得分:4)
InputStreamReader需要知道流是ISO 8859-1格式。尝试将此参数添加到InputStreamReader ...
new InputStreamReader( ... , Charset.forName("ISO-8859-1"))
答案 2 :(得分:3)
InputStreamReader(InputStream in, String charsetName)
Create an InputStreamReader that uses the named charset.