powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с кодировкой при работе с MySQL.
11 сообщений из 11, страница 1 из 1
Проблема с кодировкой при работе с MySQL.
    #32964837
Павел_Д
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток.
Вот уже 2 дня не могу справиться с этой проблемой:

Соединяюсь с MySQL, затем делаю select, пытаюсь вытащить строчку с русским именем, на выходе каракули.

Работаю под win2000.
Все кодировки в MySQL настроены на Cp1251.
При коннекте "characterEncoding" и "characterSetResults" тоже ставлю Cp1251.
Статью Астахова читал ).

Вот пример кода:


code:--------------------------------------------------------------------------------
import java.io.*;
import java.util.*;
import java.sql.*;
public class test
{
public static void main(String[] args)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
} catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
System.exit(1);
}
/*
Establishing connection
*/
String url = "jdbc:mysql://localhost/interbank";
Connection con=null;
Properties connInfo = new Properties();
connInfo.put("user","root");
connInfo.put("password","pass");
connInfo.put("useUnicode","true");
connInfo.put("characterEncoding","Cp1251");
connInfo.put("characterSetResults","Cp1251");
try
{
con = DriverManager.getConnection(url,connInfo);
}catch (Exception e )
{
System.out.println("DB connection error:");
e.printStackTrace();
}
Statement stmt=null;
try{
stmt= con.createStatement();;
}catch(Exception e){System.out.println("Connection error");}
try{
String query = "SELECT * FROM banks where bankseek='123456785'";
ResultSet rs = stmt.executeQuery(query);
while (rs.next())
{
String str = rs.getString("name");
FileOutputStream fo = new FileOutputStream(".\\test");
//byte[] winData = str.getBytes("UTF-8");
byte[] winData = str.getBytes("Cp1251");
/*
Асли писать строку через FileWriter - результат тот же ((
*/
fo.write(winData);
fo.close();
}
}catch(SQLException ex)
{
System.out.println("SQLException caught");
while (ex != null)
{
System.out.println("Message: "+ ex.getMessage());
System.out.println("SQLState: "+ ex.getSQLState());
System.out.println("ErrorCode: "+ ex.getErrorCode());
ex = ex.getNextException();
System.out.println("");
}
}catch (Exception e ){e.printStackTrace();}
}
}
--------------------------------------------------------------------------------


P.S. Самое интересное в том, что некоторые буквы отображаются нормально.
Базу я создавал через стандартный MySQL CommandLine Client.
Буду очень благодарен за помощь.
// **************************************************
*****************
Вот пришел домой.

Теперь после INSERT`а через MySQL CommandLine Client русские буквы не сохраняются должным образом (о чём свидетельствуют каракули в том же MySQL CommandLine Client), зато если писать в таблицу из программы, а потом из нее же читать всё работает нормально. Кроме того всякие GUI клиенты тоже отображают русские буквы адекватно (и это меня вполне устраивает).
Разница лишь в том, что на работе стоит win2k_ENG, а дома winXP_RUS.
И нужно чтобы работало это на работе...
Может у кого-нибудь есть мысли как решить эту проблему?
Варианты типа "Поставь на работу XP" не предлагать. ))
...
Рейтинг: 0 / 0
Проблема с кодировкой при работе с MySQL.
    #32964866
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты этот код где запускаешь? в cmd?
...
Рейтинг: 0 / 0
Проблема с кодировкой при работе с MySQL.
    #32964870
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
 import  java.io.*;
 import  java.util.*;
 import  java.sql.*;
 public   class  test
{
 public   static   void  main(String[] args) {
    try  {
       Class .forName("com.mysql.jdbc.Driver");
   }  catch (java.lang.ClassNotFoundException e) {
      System.err.print("ClassNotFoundException: ");
      System.err.println(e.getMessage());
      System.exit( 1 );
   }

   /*
   Establishing connection
   */
   String url = "jdbc:mysql://localhost/interbank";
   Connection con= null ;
   Properties connInfo =  new  Properties();
   connInfo.put("user","root");
   connInfo.put("password","pass");
   connInfo.put("useUnicode","true");
   connInfo.put("characterEncoding","Cp1251");
   connInfo.put("characterSetResults","Cp1251");
    try  {
      con = DriverManager.getConnection(url,connInfo);
   }  catch  (Exception e ) {
      System.out.println("DB connection error:");
      e.printStackTrace();
   }
   Statement stmt= null ;
    try  {
      stmt= con.createStatement();;
   }  catch (Exception e) {
      System.out.println("Connection error");
   }
    try  {
      String query = "SELECT * FROM banks where bankseek='123456785'";
      ResultSet rs = stmt.executeQuery(query);
       while  (rs.next()) {
         String str = rs.getString("name");
         FileOutputStream fo =  new  FileOutputStream(".\\test");
         //byte[] winData = str.getBytes("UTF-8");
          byte [] winData = str.getBytes("Cp1251");
         /*
         Асли писать строку через FileWriter - результат тот же ((
         */
         fo.write(winData);
         fo.close();
      }
   }  catch (SQLException ex) {
      System.out.println("SQLException caught");
       while  (ex !=  null ) {
         System.out.println("Message: "+ ex.getMessage());
         System.out.println("SQLState: "+ ex.getSQLState());
         System.out.println("ErrorCode: "+ ex.getErrorCode());
         ex = ex.getNextException();
         System.out.println("");
   }
}  catch  (Exception e ) {
   e.printStackTrace();
}
}
}
Так хоть прочитать можно...
...
Рейтинг: 0 / 0
Проблема с кодировкой при работе с MySQL.
    #32965270
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно чтобы все таблицы в базе были в кодировке UTF-8, это как минимум.
Вот здесь человек с такой же проблемой сталкивался.
...
Рейтинг: 0 / 0
Проблема с кодировкой при работе с MySQL.
    #32965272
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно чтобы все таблицы в базе были в кодировке UTF-8, это как минимум.
Вот здесь человек с такой же проблемой сталкивался.
...
Рейтинг: 0 / 0
Проблема с кодировкой при работе с MySQL.
    #32965346
asdasdasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wessenнужно чтобы все таблицы в базе были в кодировке UTF-8, это как минимум.
Вот здесь человек с такой же проблемой сталкивался.а у тебя чего за провайдер? есть маза, что мы с тобой в одной сетке сидим :)
...
Рейтинг: 0 / 0
Проблема с кодировкой при работе с MySQL.
    #32965401
Павел_Д
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо,
разобрался:
проблема заключалачь в том, что таблица была создана с использованием кодировки latin1, а дома я создавал таблицу с уже измененной кодировкой Cp1251.
...
Рейтинг: 0 / 0
Проблема с кодировкой при работе с MySQL.
    #32965402
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdasdasa wessenнужно чтобы все таблицы в базе были в кодировке UTF-8, это как минимум.
Вот здесь человек с такой же проблемой сталкивался.а у тебя чего за провайдер? есть маза, что мы с тобой в одной сетке сидим :)
А ты вообще кто есть? И что за маза такая? :)
...
Рейтинг: 0 / 0
Проблема с кодировкой при работе с MySQL.
    #32965433
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оффтоп
а как провайдера узнать? ипользую traceroute, а он только внутренние маршрутизаторы показывает, а админу звонить не хочется:)
...
Рейтинг: 0 / 0
Проблема с кодировкой при работе с MySQL.
    #32966582
пробел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wessen asdasdasa wessenнужно чтобы все таблицы в базе были в кодировке UTF-8, это как минимум.
Вот здесь человек с такой же проблемой сталкивался.а у тебя чего за провайдер? есть маза, что мы с тобой в одной сетке сидим :)
А ты вообще кто есть? И что за маза такая? :)вообще, я местный :)

и если глянуть на статистику http://www.sql.ru/users/cat2/statistics.asp то по критериям "форум java" и "самые активные авторы" я занимаю почетное первое место :) а если учесть в том же списке еще двух моих клонов, то вообще - с большим отрывом от НеГониНаНас'а :)
...
Рейтинг: 0 / 0
Проблема с кодировкой при работе с MySQL.
    #32966632
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да ты ваще крут, базар нет :) И я еще с тобой в одной сетке (наверное), вот мне повезло то :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с кодировкой при работе с MySQL.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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