Master Mind
Master Mind

Reputation: 2404

Java : How to convert java.lang.String to ISO 8859-1 format

In my application, i'm parsing ISO 8859-1 formatted data via CSVParser. But when i store parsed data to a String array, then cross check with corresponding ISO 8859-1 formatted data in the database, the string array not supporting some character mapping(Eg: µ is encoded as ?).This is my parsing code :

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, is used to hold parsed data.

Upvotes: 7

Views: 3511

Answers (3)

slipperyseal
slipperyseal

Reputation: 2778

The InputStreamReader will need to know the stream is ISO 8859-1 format. Try adding this parameter to the InputStreamReader...

new InputStreamReader( ... , Charset.forName("ISO-8859-1"))

Upvotes: 4

kosa
kosa

Reputation: 66677

You need to specify CharSet while creating InputStreamReader

Example:

new InputStreamReader(new FileInputStream(new File(directory)),Charset.forName("ISO-8859-1"))

Upvotes: 4

Nikolay Kuznetsov
Nikolay Kuznetsov

Reputation: 9579

Try to use another constructor for InputStreamReader

InputStreamReader(InputStream in, String charsetName) 
Create an InputStreamReader that uses the named charset.

Upvotes: 3

Related Questions