1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

Кодировка ЖЕСТЬ!

Тема в разделе 'Запуск и Поддержка', создана пользователем festival, 30 дек 2010.

Статус темы:
Закрыта.
  1. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    Не знаю даже в чем проблема в боте или в Опен Стат но с кодировкой что-то это точно.
    [IMG]
    Смотреть снизу вверх и читать мои комментарии.
    Запускаю бота, даю 2 бана с канала, кодировка работает.
    Создаю клоз и оттуда даю бан, работает кодировка.
    Выхожу на канал не работает кодировка!
    Пере запускаю бота, и с канала даю бан. С кодировкой все ок.
    Создаю клоз и оттуда бан, все нормально.
    Выхожу на канал и оттуда 2 бана. Все работает в чем проблема.
    Создаю клоз оттуда бан, упала кодировка.
    Люди посоветуйте что-то.

    GHost One 1.7.266
    Open Stats 1.2.9

    В логе ничего не пишет, никаких падений, ерроров.
  2. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Какую причину давал этим никам?
  3. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    "Ливер"

    Он видать меняет кодировку, ее можно как-то зафиксировать что ли?
  4. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    Есть подозрение что дело именно в боте т.к. игнорируются некоторые позиции в конфиге:
    bot_maxdownloaders = 3
    То есть заходит к примеру, 4 человека без карты и все качают карту. Бот выкидывает в чат инфу у кого какая скорость и сколько им осталось, качают карту они по любому.
    Команды !autosave, !bans и !p для не админов (у них только !ping работает) и еще какие-то, не помню уже, бот просто не реагирует на них вроде их и нету.
    В коде они есть и к ним я даже не прикасался, должны работать.
  5. JiLiZART Администрация

    Сообщения:
    815
    Спасибы:
    35
    Сборка бота GHost:
    Ghost++ 17.1
    Дата начала использования бота:
    12.12.04
    Базу с таблицами нужно создавать в UTF8, т.е если уже есть таблицы в latin1, и если переконвертировать базу в UTF8 то таблицы останутся в latin1. Один из выходов, конвертация всех файлов статы в UTF8, или создание базы с нуля в UTF8. Возможен ещё баг с ботом.
  6. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    Да, базе там лет 5 и кодировки с таблицами там были самые разные, в принципе мне надо изменить кодировки сейчас и переписываться reason ban уже в новой кодировке.
    Стата фиг с ней, сброшу сейчас.
    Спасибо за размышление.

    И еще вопрос, utf8_unicode_ci ставить?
  7. JiLiZART Администрация

    Сообщения:
    815
    Спасибы:
    35
    Сборка бота GHost:
    Ghost++ 17.1
    Дата начала использования бота:
    12.12.04
    Да. Ещё есть вариант.
    Экспортим базу в sql фаил, открываем в любом нормальном блокноте ( Notepad++ ) и меняем кодировку, потом сохраняем. И заливаем дамп в новую базу.
    PS
    Я так раньше проблемы кодировок решал при переезде с cp1251 на utf8, но могут некоторые символы в квадратики превратиться =(
  8. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    Проблема в самом боте...я привязал его к чистой\новой базе, все таблицы в utf8_unicode_ci, кодировка падает а точнее меняется с UTF8 на ANSI также как и раньше...
    Давал еще сверху 10 банов по упавшей кодировке, обратно не меняется)

    Пробовал ставить чистого бота, GHost One 1.7.266 проблема осталась.
    Бота брал отсюда http://www.codelain.com/forum/index.php?topic=11643.0

    Бота надо заставить работать на одной кодировке, может все исходники в UTF8?
  9. dxmgroup Ньюфаг

    Сообщения:
    40
    Спасибы:
    0
    бота не надо заставлять просто когда ты делаешь sql запрос
    mysql_create_tables_v2.5one
    в нем не прописана кодировка следовательно она ставиться автоматически

    кусок запроса БЕЗ УКАЗАНИЯ КОДИРОВКИ

    CREATE TABLE admins (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    botid INT NOT NULL,
    name VARCHAR(15) NOT NULL,
    server VARCHAR(100) NOT NULL,
    access BIGINT unsigned DEFAULT '4294963199' NOT NULL
    );

    кусок запроса с указанием кодировки utf8
    CREATE TABLE admins (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    botid INT NOT NULL,
    name VARCHAR(15) NOT NULL,
    server VARCHAR(100) NOT NULL,
    access BIGINT unsigned DEFAULT '4294963199' NOT NULL
    )
    ENGINE=MyISAM CHARACTER SET=utf8;

    соответственно нужно указать кодировку для всех таблиц

    запрос целиком
    Код:
    CREATE TABLE admins (
    	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	botid INT NOT NULL,
    	name VARCHAR(15) NOT NULL,
    	server VARCHAR(100) NOT NULL,
    	access BIGINT unsigned DEFAULT '4294963199' NOT NULL
    )
    ENGINE=MyISAM CHARACTER SET=utf8;
    
    
    CREATE TABLE notes ( 
    	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    	server VARCHAR(100) NOT NULL, 
    	name VARCHAR(15) NOT NULL,
    	note VARCHAR(250) NOT NULL
    	
    )
    ENGINE=MyISAM CHARACTER SET=utf8;
    
    CREATE TABLE safelist ( 
    	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    	server VARCHAR(100) NOT NULL, 
    	name VARCHAR(15) NOT NULL,
    	voucher VARCHAR(15) DEFAULT '' NOT NULL	
    )
    ENGINE=MyISAM CHARACTER SET=utf8;
    
    CREATE TABLE bans (
    	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	botid INT NOT NULL,
    	server VARCHAR(100) NOT NULL,
    	name VARCHAR(15) NOT NULL,
    	ip VARCHAR(15) NOT NULL,
    	date DATETIME NOT NULL,
    	gamename VARCHAR(31) NOT NULL,
    	admin VARCHAR(15) NOT NULL,
    	reason VARCHAR(255) NOT NULL,
    	gamecount INT DEFAULT '0' NOT NULL,
    	expiredate VARCHAR(31) DEFAULT '' NOT NULL,
    	warn INTEGER DEFAULT '0' NOT NULL	
    )
    ENGINE=MyISAM CHARACTER SET=utf8;
    
    CREATE TABLE games (
    	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	botid INT NOT NULL,
    	server VARCHAR(100) NOT NULL,
    	map VARCHAR(100) NOT NULL,
    	datetime DATETIME NOT NULL,
    	gamename VARCHAR(31) NOT NULL,
    	ownername VARCHAR(15) NOT NULL,
    	duration INT NOT NULL,
    	gamestate INT NOT NULL,
    	creatorname VARCHAR(15) NOT NULL,
    	creatorserver VARCHAR(100) NOT NULL
    )
    ENGINE=MyISAM CHARACTER SET=utf8;
    
    CREATE TABLE gameplayers (
    	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	botid INT NOT NULL,
    	gameid INT NOT NULL,
    	name VARCHAR(15) NOT NULL,
    	ip VARCHAR(15) NOT NULL,
    	spoofed INT NOT NULL,
    	reserved INT NOT NULL,
    	loadingtime INT NOT NULL,
    	`left` INT NOT NULL,
    	leftreason VARCHAR(100) NOT NULL,
    	team INT NOT NULL,
    	colour INT NOT NULL,
    	spoofedrealm VARCHAR(100) NOT NULL,
    	elopoint FLOAT NOT NULL DEFAULT 0.0,
    	INDEX( gameid )
    )
    ENGINE=MyISAM CHARACTER SET=utf8;
    
    CREATE TABLE dotagames (
    	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	botid INT NOT NULL,
    	gameid INT NOT NULL,
    	winner INT NOT NULL,
    	min INT NOT NULL,
    	sec INT NOT NULL
    )
    ENGINE=MyISAM CHARACTER SET=utf8;
    
    CREATE TABLE dotaplayers (
    	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	botid INT NOT NULL,
    	gameid INT NOT NULL,
    	colour INT NOT NULL,
    	kills INT NOT NULL,
    	deaths INT NOT NULL,
    	creepkills INT NOT NULL,
    	creepdenies INT NOT NULL,
    	assists INT NOT NULL,
    	gold INT NOT NULL,
    	neutralkills INT NOT NULL,
    	item1 CHAR(4) NOT NULL,
    	item2 CHAR(4) NOT NULL,
    	item3 CHAR(4) NOT NULL,
    	item4 CHAR(4) NOT NULL,
    	item5 CHAR(4) NOT NULL,
    	item6 CHAR(4) NOT NULL,
    	hero CHAR(4) NOT NULL,
    	newcolour INT NOT NULL,
    	towerkills INT NOT NULL,
    	raxkills INT NOT NULL,
    	courierkills INT NOT NULL,
    	INDEX( gameid, colour )
    )
    ENGINE=MyISAM CHARACTER SET=utf8;
    
    CREATE TABLE downloads (
    	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	botid INT NOT NULL,
    	map VARCHAR(100) NOT NULL,
    	mapsize INT NOT NULL,
    	datetime DATETIME NOT NULL,
    	name VARCHAR(15) NOT NULL,
    	ip VARCHAR(15) NOT NULL,
    	spoofed INT NOT NULL,
    	spoofedrealm VARCHAR(100) NOT NULL,
    	downloadtime INT NOT NULL
    )
    ENGINE=MyISAM CHARACTER SET=utf8;
    
    CREATE TABLE scores (
    	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	category VARCHAR(25) NOT NULL,
    	name VARCHAR(15) NOT NULL,
    	server VARCHAR(100) NOT NULL,
    	score REAL NOT NULL
    );
    
    CREATE TABLE w3mmdplayers (
    	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	botid INT NOT NULL,
    	category VARCHAR(25) NOT NULL,
    	gameid INT NOT NULL,
    	pid INT NOT NULL,
    	name VARCHAR(15) NOT NULL,
    	flag VARCHAR(32) NOT NULL,
    	leaver INT NOT NULL,
    	practicing INT NOT NULL
    )
    ENGINE=MyISAM CHARACTER SET=utf8;
    
    CREATE TABLE w3mmdvars (
    	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	botid INT NOT NULL,
    	gameid INT NOT NULL,
    	pid INT NOT NULL,
    	varname VARCHAR(25) NOT NULL,
    	value_int INT DEFAULT NULL,
    	value_real REAL DEFAULT NULL,
    	value_string VARCHAR(100) DEFAULT NULL
    )
    ENGINE=MyISAM CHARACTER SET=utf8;
    
  10. dxmgroup Ньюфаг

    Сообщения:
    40
    Спасибы:
    0
    если в дота опен статс запрос тоже без указания кодировки то следовательно нужно тоже дописать
  11. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    dxmgroup скажи, ты вот пропустил scores и там выставилась cp1251_general_ci мне туда добавить ENGINE=MyISAM CHARACTER SET=utf8; (в запрос) или так надо либо не имеет значения?


    Ну проще говоря, мне нужно во всех столах, таблицах, строчках поставить utf8? я просто пробовал уже это...
  12. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    во всех.Хотя по идее нафиг изобритать велосипед, там же пишут в инструкции что нужно создать таблицу с дефолтной кодировкой утф.Я делал всё как написанно у мну небыло ниразу трабла с кодировками......
  13. Pioneer Парнишка с небывалым умом

    Сообщения:
    36
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    Я русифицировал DotaOpenStats, а вместо русских символов видны непонятные значки.
    Какой файл отвечает за кодировку и в какую кодировку переводить базу данных?
  14. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    Кодировка действительно менялась в боте)
    Нашел Ghost One 1.7.265 на офф форуме, кодировка работает без сбоев.
    http://www.maxdevlon.com/ghost/ghostone1.7.265.zip
    Всем спасибо, тема закрыта.
Статус темы:
Закрыта.