Display special characters using System.out.println

岁酱吖の 提交于 2019-12-17 06:46:39

问题


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


回答1:


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?)



回答2:


If you are using Eclipse, then

  1. right click on you project.
  2. Go to Properties
  3. Select UTF-8 in "Text File Encoding "




回答3:


See if this works.

    PrintStream out = new PrintStream(System.out, true, "UTF-8");
    out.println(test);

For storing in DB, use following to explicitly encode the string in UTF-8

String newString = new String(test.getBytes(), "UTF8");



回答4:


may be you need to decode your character string to ISO-8859 first and then encode it to UTF-8



来源:https://stackoverflow.com/questions/10933620/display-special-characters-using-system-out-println

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!