Вопрос по character-encoding, database, java, string, system.printing – Отображение специальных символов с помощью System.out.println

13

У меня проблемы с отправкой или отображением текста со специальными символами из моего веб-сервиса в моей базе данных. В моем затмении я установил кодировку символов UTF-8, но он все еще не позволяет мне отображать символы. Например, простая печать, как код ниже

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

ИЛИ ЖЕ

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

Результат на консоли, и если я отправлю это в мою базу данных, это ?????? Как мне заставить это правильно отображаться на консоли и, надеюсь, в базе данных

затмение, если под консольным набором символов вы подразумеваете настройки в Windows & gt; Настройки & gt; WorkSpace установлено в UTF-8. Есть ли другой способ установить консоль отдельно? Amanni
Это консоль затмения или ш / смд? для какого набора символов установлена ваша консоль? atk

Ваш Ответ

4   ответа
9

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

Для хранения в БД используйте следующее для явного кодирования строки в UTF-8

String newString = new String(test.getBytes(), "UTF8");
Вы должны закодировать строку в «iso-8859-1» например: новая строка (test.getBytes (), "iso-8859-1");
Нет, я получаю одинаковых персонажей Amanni
0

вам нужно сначала декодировать строку символов в ISO-8859, а затем кодировать ее в UTF-8

1

это XXI. века, и мы все еще боремся с такими вещами, как кодирование символов ...

Мое первое предположение, что либо:

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), 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) your DB encoding might be incorrect (what is the Table encoding, can you check that?)
Я установил кодировку таблицы в utf8, все тот же результат. Что касается кодирования, я могу отображать специальные символы при программировании на Android. Amanni
12

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

enter image description here

Похожие вопросы