Помогите MySQL + Linux + Запись русского текста

  • Автор темы Автор темы Jampire
  • Дата начала Дата начала

Jampire

Старожил
Пользователь
Баллы
173
Имя в Minecraft
Jampire
Пытаюсь плагином записывать в базу данных русские строки, работаю через стандартный JDBC.
На винде всё работает прекрасно, как заливаю на сервер(под Linux) - в базу пишет вопросы.
На каком уровне искать ошибку?
 
Шаманил. На уровне сервера - ruFix + кодировка плагина utf8 + пробовал перекодировать текст на уровне запроса к базе. Результат одинаковый, база не понимает это.
Кодировка базы - utf8_general_ci
 
Попробуйте сразу после коннекта к БД выполнять запрос
Код:
SET NAMES 'utf8'
 
Попробуйте сразу после коннекта к БД выполнять запрос
Код:
SET NAMES 'utf8'
И так пробовал. Я перепробовал многое, в итоге написал сюда надеясь что кто-то перепробовал больше чем я)
 
Попробуйте коннектится к MySQL с такими параметрами, мне помогало:
Код:
jdbc:mysql://localhost:3306/name?useUnicode=true&characterEncoding=UTF-8
Даже не знаю как отблагодарить, но это реально помогло. Даже если убрать всё остальное, что влияет на кодировку - этот способ работает отлично.
 
Даже не знаю как отблагодарить, но это реально помогло. Даже если убрать всё остальное, что влияет на кодировку - этот способ работает отлично.
Пожалуйста, рад, что помог 🙂
 
а что делать если в конфиге плагина есть только такое?
Править сорцы пытался, не получается...
YAML:
use-mysql: true
table-prefix: co_
mysql-host: localhost
mysql-port: 3306
mysql-database: test
mysql-username: root
mysql-password:
 
К названию базы добавь ?useUnicode=true&characterEncoding=UTF-8
Это сработает только если плагин не проверяет валидность строки имени и не имеет у себя в коде продолжения запроса после имени.
 
VaNnOrus +1
Den_Abr, если в плагине LogBlock или CoreProtect вписать после названия вот ту фигню, то вызовет краш плагина.

Нужно всего то 2 плагина, это один из тех который я написал выше и плагин банов.
Оба в конфигах не подразумевают того чтоб прописывать такую вот строку подключения.
 
VaNnOrus +1
Den_Abr, если в плагине LogBlock или CoreProtect вписать после названия вот ту фигню, то вызовет краш плагина.

Нужно всего то 2 плагина, это один из тех который я написал выше и плагин банов.
Оба в конфигах не подразумевают того чтоб прописывать такую вот строку подключения.
Можно попробовать "полазить" по плагину InClassTranslator'ом в поисках строки подключения к базе.
 
Можно попробовать "полазить" по плагину InClassTranslator'ом в поисках строки подключения к базе.
Поискал плагины бан листов.
В Ultrabans есть в коде воот такая вот штука:
Java:
            Properties info = new Properties();
            info.put("autoReconnect", "true");
            info.put("user", username);
            info.put("password", password);
            info.put("useUnicode", "true");
            info.put("characterEncoding", "utf8");
            connection = DriverManager.getConnection(database,info);
            return connection;
Чуть позже буду дома, проверю как оно на убунте будет себя вести.
 
Поискал плагины бан листов.
В Ultrabans есть в коде воот такая вот штука:
Java:
            Properties info = new Properties();
            info.put("autoReconnect", "true");
            info.put("user", username);
            info.put("password", password);
            info.put("useUnicode", "true");
            info.put("characterEncoding", "utf8");
            connection = DriverManager.getConnection(database,info);
            return connection;
Чуть позже буду дома, проверю как оно на убунте будет себя вести.
Вот ультрабан, как раз, ничего не проверяет. У меня почти все плагины так подключаются, нигде крашей не видел
 
Назад
Верх