Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Jampire, 19 янв 2013.

  1. Автор темы
    Jampire

    Jampire Старожил Пользователь

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Пытаюсь плагином записывать в базу данных русские строки, работаю через стандартный JDBC.
    На винде всё работает прекрасно, как заливаю на сервер(под Linux) - в базу пишет вопросы.
    На каком уровне искать ошибку?
     
  2. Хостинг MineCraft
    <
  3. TekTonneR

    TekTonneR Старожил

    Баллы:
    103
    Имя в Minecraft:
    TekTonneR
    с кодировкой по шамань
    .......
     
  4. Автор темы
    Jampire

    Jampire Старожил Пользователь

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Шаманил. На уровне сервера - ruFix + кодировка плагина utf8 + пробовал перекодировать текст на уровне запроса к базе. Результат одинаковый, база не понимает это.
    Кодировка базы - utf8_general_ci
     
  5. zixel

    zixel Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    _Zixel_
    Попробуйте сразу после коннекта к БД выполнять запрос
    Код:
    SET NAMES 'utf8'
     
    Jampire нравится это.
  6. Автор темы
    Jampire

    Jampire Старожил Пользователь

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    И так пробовал. Я перепробовал многое, в итоге написал сюда надеясь что кто-то перепробовал больше чем я)
     
  7. zixel

    zixel Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    _Zixel_
    Попробуйте коннектится к MySQL с такими параметрами, мне помогало:
    Код:
    jdbc:mysql://localhost:3306/name?useUnicode=true&characterEncoding=UTF-8
     
    termobyte, Xakep_SDK, fromgate и 6 другим нравится это.
  8. Автор темы
    Jampire

    Jampire Старожил Пользователь

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Даже не знаю как отблагодарить, но это реально помогло. Даже если убрать всё остальное, что влияет на кодировку - этот способ работает отлично.
     
    Сникерсни и termobyte нравится это.
  9. zixel

    zixel Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    _Zixel_
    Пожалуйста, рад, что помог :)
     
  10. ensirius

    ensirius Старожил Пользователь

    Баллы:
    123
    без ruFix?
     
  11. zixel

    zixel Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    _Zixel_
    По-идеи должно работать и без него.
     
  12. Автор темы
    Jampire

    Jampire Старожил Пользователь

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    не пробовал ruFix убирать, в любом случае достаточно важная деталь и в моем случае убирать ее не стоит.
     
  13. _Dimk_O_

    _Dimk_O_ Старожил Пользователь

    Баллы:
    123
    Skype:
    dimk__o
    а что делать если в конфиге плагина есть только такое?
    Править сорцы пытался, не получается...
    Код:
    use-mysql: true
    table-prefix: co_
    mysql-host: localhost
    mysql-port: 3306
    mysql-database: test
    mysql-username: root
    mysql-password: 
     
  14. _Dimk_O_

    _Dimk_O_ Старожил Пользователь

    Баллы:
    123
    Skype:
    dimk__o
    Рыжий Ап!
     
  15. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    К названию базы добавь ?useUnicode=true&characterEncoding=UTF-8
     
  16. VaNnOrus

    VaNnOrus Старожил Пользователь

    Баллы:
    123
    Это сработает только если плагин не проверяет валидность строки имени и не имеет у себя в коде продолжения запроса после имени.
     
    GJEvolution и ВремяПриключений нравится это.
  17. _Dimk_O_

    _Dimk_O_ Старожил Пользователь

    Баллы:
    123
    Skype:
    dimk__o
    VaNnOrus +1
    Den_Abr, если в плагине LogBlock или CoreProtect вписать после названия вот ту фигню, то вызовет краш плагина.

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

    VaNnOrus Старожил Пользователь

    Баллы:
    123
    Можно попробовать "полазить" по плагину InClassTranslator'ом в поисках строки подключения к базе.
     
  19. _Dimk_O_

    _Dimk_O_ Старожил Пользователь

    Баллы:
    123
    Skype:
    dimk__o
    Поискал плагины бан листов.
    В Ultrabans есть в коде воот такая вот штука:
    Код:
                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;
    Чуть позже буду дома, проверю как оно на убунте будет себя вести.
     
  20. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Вот ультрабан, как раз, ничего не проверяет. У меня почти все плагины так подключаются, нигде крашей не видел
     
  21. Автор темы
    Jampire

    Jampire Старожил Пользователь

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Тоже самое, только тут немного по другому строится строка. Но непонятно зачем объявляется объект Properties
     

Поделиться этой страницей