2012-06-07 5 views
11

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

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

ИЛИ

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

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

+0

Это консоль затмение, или ш/CMD? какой набор символов задан вашей консолью? – atk

+1

eclipse, если с помощью набора символов консоли вы имеете в виду настройки в Windows> Предпочтения> WorkSpace, оно установлено в UTF-8. Есть ли другой способ настроить консоль отдельно? – Amanni

ответ

1

Да, сво XXI. века, и мы до сих пор борется с вещами, как кодировка символов ...

Моя первая догадка что либо:

  1. ваш источник кодирования файла может быть неправильным (вы используете инструменты для сборки, такие как Maven Это может необходимо установить исходную кодировку)
  2. Ваша консольная кодировка может быть неправильной (вы находитесь под Windows? По умолчанию консоль командной строки по умолчанию не является UTF, ее локально-зависимой, но с небольшим воспроизведением в реестра вы можете установить его кодировку)
  3. Возможно, ваша кодировка БД неверна (что такое кодировка таблицы, можете ли вы проверить это ?)
+0

Я установил кодировку таблицы в utf8 все тот же результат. Что касается кодировки, я могу отображать специальные символы, когда я программирую в android. – Amanni

9

Посмотрите, работает ли это.

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

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

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

Нет, я получаю те же символы – Amanni

+0

, вы должны закодировать строку до «iso-8859-1» ex: new String (test.getBytes(), «iso-8859-1»); – oczdref

0

может быть вам нужно декодировать строку вашего персонажа в ISO-8859, а затем кодировать его в UTF-8

11

Если вы используете Eclipse, то

  1. правой кнопкой мыши на вы проектируете.
  2. Перейти к свойствам
  3. Выберите UTF-8 в "Текст Кодирование Файл"

enter image description here

+0

WOW, он работает для меня. – Sun

Смежные вопросы