javadatabasestringcharacter-encodingsystem.printing

Display special characters using System.out.println


I'm having trouble sending or displaying text with special characters from my webservice to my database. On my eclipse I have set the character encoding to UTF-8 but it still doesn't let me display the characters. For example a simple print like the code below

String test ="привет"; 
System.out.println(test);

OR

String test ="привет";
String query = "insert into communication (`test`) VALUES ('"+ test +"');
PreparedStatement preparedStmt1 = con.prepareStatement(query);
preparedStmt1.executeUpdate();

The result on the console and if I send this to my database is ??????. How do I get this to display correctly on the console and hopefully in the database


Solution

  • Yeah, its the XXI. century and we're still struggling with things like character encoding...

    My first guess is that either:

    1. your source file encoding might be wrong (do you use build tools like Maven? It might be needed to set the source-encoding there too),
    2. your console encoding might be wrong (are you under Windows? The default command line console is not UTF by default, its local-dependant, but with a small play in the registry you can set its encoding)
    3. your DB encoding might be incorrect (what is the Table encoding, can you check that?)