Writing and reading files or outputstream/inputstream with ANSI – Windows encoding in java and Servlet response

To read a text file with a specific encoding you can use a FileInputStream in conjunction with a InputStreamReader. The right Java encoding for Windows ANSI is Cp1252.

reader = new BufferedReader(new InputStreamReader(new FileInputStream(csvFile), "Cp1252"));

To write a text file with a specific character encoding you can use a FileOutputStream together with a OutputStreamWriter.

writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "Cp1252"));

The classes InputStreamReader and OutputStreamWriter translate between byte oriented streams and text with a specific character encoding.

End of Line pro tip:

writer.write("\r\n");

Making the servlet response:

response.setContentType("text/plain");
response.setCharacterEncoding("windows-1252");
response.addHeader("Content-Disposition", "attachment; filename=" + filenameVar+ ".txt");
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s