кодировка в mysql jdbc
От: oror7  
Дата: 24.04.10 14:17
Оценка:
на сервере целевая таблица в cp1251
CREATE TABLE `sjf`.`rubric` (
  `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(64) NOT NULL,
  `titul` VARCHAR(512) NOT NULL,
  `valid` BOOLEAN NOT NULL,
  `ref` INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY (`id`) 
)
ENGINE = InnoDB
CHARACTER SET cp1251 COLLATE cp1251_general_ci;

в еклипсовой консоли кодировка тоже cp1251
следующий код почему-то выводит знаки вопросов вместо текста
Class.forName( "com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection( "jdbc:mysql://localhost/sjf", "root", "qqqqqq");
Statement st = con.createStatement();
st.executeUpdate( "insert into groupx( name, titul, valid) values( 'фыва', 'фыва', true);");
ResultSet rs = st.executeQuery( "select * from groupx;");
while( rs.next()){
    System.out.println( rs.getString( 2));
                
            }

а если в нём добавить параметр кодировки characterEncoding
Connection con = DriverManager.getConnection( "jdbc:mysql://localhost/sjf?characterEncoding=cp1251", "root", "qqqqqq");

то ловим эксептион
java.sql.SQLException: Incorrect string value: '\xF4\xFB\xE2\xE0' for column 'name' at row 1


окружение
vista sp1
jdk 1.6
mysql 5.1.31
mysql connector 5.1.8

27.04.10 10:30: Перенесено модератором из 'Java' — Blazkowicz
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.