7

在我的应用程序中,我通过 CSVParser 解析 ISO 8859-1 格式的数据。但是当我将解析后的数据存储到字符串数组中,然后与数据库中相应的 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,用于保存已解析的数据。

4

3 回答 3

4

您需要在创建InputStreamReader时指定CharSet

例子:

new InputStreamReader(new FileInputStream(new File(directory)),Charset.forName("ISO-8859-1"))
于 2012-11-19T05:26:11.447 回答
4

InputStreamReader 需要知道流是 ISO 8859-1 格式。尝试将此参数添加到 InputStreamReader...

new InputStreamReader( ... , Charset.forName("ISO-8859-1"))
于 2012-11-19T05:26:25.893 回答
3

尝试为InputStreamReader使用另一个构造函数

InputStreamReader(InputStream in, String charsetName) 
Create an InputStreamReader that uses the named charset.
于 2012-11-19T05:25:20.360 回答