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 に答える