Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Linux & MySQL / 10 сообщений из 10, страница 1 из 1
11.02.2006, 18:53
    #33538980
bob_j
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linux & MySQL
Выполняю вот такой код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
 import  java.sql.*;

 public   class  tstMySQL
{
	 public   static   void  main(String[] args)
	{
		 try 
		{
			 Class .forName("com.mysql.jdbc.Driver").newInstance();
		}
		 catch  (Exception e)
		{
			System.out.println("Exception #1");
			e.printStackTrace();
		}

		 try 
		{
			Connection con = DriverManager.getConnection("jdbc:mysql://host2/mytest?user=root&password=57r80t10");
			con.close();
		}
		 catch  (SQLException e)
		{
			System.out.println("Exception #2");
			e.printStackTrace();
		}
	}
}

и получаю вот такое сообщение

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
java.sql.SQLException: Unknown character set: 'win1251'
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2921)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1570)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:2972)
        at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:2319)
        at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:3692)
        at com.mysql.jdbc.Connection.createNewIO(Connection.java:2557)
        at com.mysql.jdbc.Connection.<init>(Connection.java:1474)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:264)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at tstMySQL.main(tstMySQL.java:19)

Работаю под ASP Linux 9.0 JDK 1.5.0_05.
...
Рейтинг: 0 / 0
11.02.2006, 21:01
    #33539048
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linux & MySQL
Попробуй через параметры Connection задать явно
другую кодировку, напр. koi-8r .
...
Рейтинг: 0 / 0
12.02.2006, 00:13
    #33539168
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linux & MySQL
у меня тоже была такая же проблема, описана :
вот здесь
...
Рейтинг: 0 / 0
12.02.2006, 02:01
    #33539218
bob_j
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linux & MySQL
unicornmirageу меня тоже была такая же проблема, описана :
вот здесь
У тебя там написано: "если же указываю кодировку "windows-1251" то все нормально" . Где именно ты ее указываешь?
...
Рейтинг: 0 / 0
12.02.2006, 05:57
    #33539280
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linux & MySQL
bob_j
У тебя там написано: "если же указываю кодировку "windows-1251" то все нормально" . Где именно ты ее указываешь?

как уже выше было сказано, кодировка указывается в параметрах Connection, например:
Код: plaintext
1.
2.
3.
4.
5.
 Class .forName("...имя_JDBC_драйвера...").newInstance();
Properties prop =  new  Properties();
prop.put("user", "...логин_пользователя...");
prop.put("password", "...пароль_пользователя...");
prop.put("characterEncoding", "ИМЯ_КОДИРОВКИ");  
...
Рейтинг: 0 / 0
12.02.2006, 11:08
    #33539357
М.Голованов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linux & MySQL
1. Код, приведенный в начале, НЕ устанавливает characterEncoding.

2. Будете устанавливать его - почитайте внимательно руководство к Вашему драйверу. "win1251" - корректное имя character set для MySQL, но некорректное для Java. В Java это "Cp1251".
...
Рейтинг: 0 / 0
13.02.2006, 16:57
    #33541506
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linux & MySQL
М.Голованов1. Код, приведенный в начале, НЕ устанавливает characterEncoding.
почему это? наверное зыбыл привести строку:
Код: plaintext
con = DriverManager.getConnection(SysContext.JDBC_DRIVER_URL, prop);

М.Голованов2. Будете устанавливать его - почитайте внимательно руководство к Вашему драйверу. "win1251" - корректное имя character set для MySQL, но некорректное для Java. В Java это "Cp1251".
я так и понял, когда смотрел исходники этого драйвера. проблему с кодировкой решил по-другому:
-- запускал resin с ключом с параметрами кодировки Cp1251
-- в MySQL создавал БД с кодировкой по-умолчанию (она была latin1)
-- в параметрах соединения через JDBC ничего, связанного с кодировкой не указывал
...
Рейтинг: 0 / 0
17.02.2006, 12:11
    #33551491
maddcast
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linux & MySQL
unicornmirageprop.put("characterEncoding", "ИМЯ_КОДИРОВКИ");
Это бесполезно. Работало только на старых драйверах. Указано, как не странно, в описании jdbc драйвера на mysql.com. Попробовал бы почитать.
...
Рейтинг: 0 / 0
17.02.2006, 17:31
    #33553049
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linux & MySQL
maddcast unicornmirageprop.put("characterEncoding", "ИМЯ_КОДИРОВКИ");
Это бесполезно. Работало только на старых драйверах. Указано, как не странно, в описании jdbc драйвера на mysql.com. Попробовал бы почитать.

странно, мож я чё напутал но это у меня проходило для создания простых Statement, но не работало с PreparedStatement. драйвер - mysql-connector-java-3.1.10
...
Рейтинг: 0 / 0
17.02.2006, 17:32
    #33553053
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linux & MySQL
сорри, я перепутал топик, то что написал выше - можно стереть
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Linux & MySQL / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]