Jump to Real's How-to Main page

Output french characters to the console

Since Java string are Unicode encoded, you must specified a different encoding when printing to a DOS console. This is done via the OutputStreamWriter class.
import java.io.*;

public class DosString {
  public static void main(String args[]){
    String javaString = 
      "caractères français :  à é \u00e9";  // Unicode for "é"
    try {
      // output to the console
      Writer w = 
        new BufferedWriter
           (new OutputStreamWriter(System.out, "Cp850"));
      w.write(javaString);
      w.flush();
      w.close();  
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
}
An alternative is to start the JVM and pass on the command line the default file encoding to be used. Then you will be able to use regular System.out.println().
java -Dfile.encoding=Cp850 MyApp
Alternate technique
import java.io.*;

public class test {
   public static void main(String[] args) {
     PrintStream ps = null;
     String javaString = 
      "caractères français :  à é \u00e9";  // Unicode for "é"

     try {
       ps = new PrintStream(System.out, true, "Cp850");
     } 
     catch (UnsupportedEncodingException error) {
       System.err.println(error);
       System.exit(0);
     }
     ps.println(javaString);
   }
}

Note : List of supported encodings here


If you find this article useful, consider making a small donation
to show your support for this Web site and its content.

Written and compiled by Réal Gagnon ©1998-2005
[ home ]