forum.bitel.ru
http://forum.bitel.ru/

И снова кодировки
http://forum.bitel.ru/viewtopic.php?f=40&t=11005
Страница 1 из 1

Автор:  skyb [ 20 окт 2015, 08:22 ]
Заголовок сообщения:  И снова кодировки

Код:
Table;Create Table

rentsoft_payment_25;CREATE TABLE `rentsoft_payment_25` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `txid` varchar(64) NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `cid` int(11) NOT NULL,
  `comment` varchar(255) NOT NULL,
  `amount` int(11) NOT NULL,
  `status` tinyint(5) NOT NULL,
  `product_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `txid` (`txid`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

до этого таблица была в cp1251 тоже вопросы, потом поменял на utf8 тоже вопросы, продукт передобавлял после смены кодировки
Код:
show variables like 'character_set_database'
character_set_database;utf8


Вложения:
Выделение_079.png
Выделение_079.png [ 24.34 КБ | Просмотров: 9177 ]

Автор:  dimOn [ 20 окт 2015, 14:36 ]
Заголовок сообщения:  Re: И снова кодировки

а в какой должно быть?
почему?
что значит поменял на utf8? как поменял?
таблица пересоздавалась? если нет то как иначе?
вопросы где? в бд тоже вопросы?
причём тут указанная таблица, если табличка из gui совсем из другой?
настройки кодировок все остальные нормальные? какие именно?

з.ы. Пока это первая часть вопросов, чтобы хотя бы понять о чём речь.

Автор:  skn [ 20 окт 2015, 14:37 ]
Заголовок сообщения:  Re: И снова кодировки

а с другими таблицами такой проблемы нет?
а какая у них кодировка?

Автор:  stark [ 20 окт 2015, 14:39 ]
Заголовок сообщения:  Re: И снова кодировки

все кодировки в студию. базы, сервера, db.url, других таблиц

Автор:  skyb [ 22 окт 2015, 07:54 ]
Заголовок сообщения:  Re: И снова кодировки

Дело в том что, модуль ставился наверное ещё в версии 5.2, сейчас 6.2 Кодировка наверное побилась, но так как настройки уже есть и работают не хотелось бы заново настраивать, если можно как то безболезненно удалить и заново создать таблицы было бы хорошо. Проблема во всех таблицах этого модуля
Код:
SHOW CREATE database bgbilling
bgbilling;CREATE DATABASE `bgbilling` /*!40100 DEFAULT CHARACTER SET utf8 */

Кодировка таблиц рентсофта без правки
Код:
SHOW CREATE TABLE rentsoft_product_25
rentsoft_product_25;CREATE TABLE `rentsoft_product_25` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `serviceKey` varchar(64) NOT NULL,
  `serviceName` varchar(64) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `serviceKey` (`serviceName`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=cp1251

то что после правки
Код:
rentsoft_payment_25;CREATE TABLE `rentsoft_payment_25` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `txid` varchar(64) NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `cid` int(11) NOT NULL,
  `comment` varchar(255) NOT NULL,
  `amount` int(11) NOT NULL,
  `status` tinyint(5) NOT NULL,
  `product_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `txid` (`txid`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

во всех кодировках есть вопросы
сервер
Код:

# locale
LANG=ru_RU.utf8
LC_CTYPE="ru_RU.utf8"
LC_NUMERIC="ru_RU.utf8"
LC_TIME="ru_RU.utf8"
LC_COLLATE="ru_RU.utf8"
LC_MONETARY="ru_RU.utf8"
LC_MESSAGES="ru_RU.utf8"
LC_PAPER="ru_RU.utf8"
LC_NAME="ru_RU.utf8"
LC_ADDRESS="ru_RU.utf8"
LC_TELEPHONE="ru_RU.utf8"
LC_MEASUREMENT="ru_RU.utf8"
LC_IDENTIFICATION="ru_RU.utf8"
LC_ALL=

Код:
db.url=jdbc:mysql://127.0.0.1/bgbilling?useUnicode=true&characterEncoding=cp1251

Автор:  stark [ 22 окт 2015, 12:51 ]
Заголовок сообщения:  Re: И снова кодировки

а кодировку базы менять ? если cp1251 осталась, то везде должна быть cp1251. Иначе новых помесячные таблицы будут создаваться в другой кодировке . А другие таблицы точно в cp1251 ?

И еще после смены кодировки на таблице данные не поменяются . Создайте что-то новое проверьте, а старое так и останется вопросиками.

Автор:  skyb [ 22 окт 2015, 14:36 ]
Заголовок сообщения:  Re: И снова кодировки

stark писал(а):
а кодировку базы менять ? если cp1251 осталась, то везде должна быть cp1251. Иначе новых помесячные таблицы будут создаваться в другой кодировке . А другие таблицы точно в cp1251 ?

в других таблицах вообще нет проблем, тоесть только с рентсофтом, который был очень давно проинстален а настроен только сейчас
stark писал(а):
И еще после смены кодировки на таблице данные не поменяются . Создайте что-то новое проверьте, а старое так и останется вопросиками.

да, я менял кодировку и заново производил покупку конечно же, так и осталось вопросами

Автор:  dimOn [ 22 окт 2015, 14:39 ]
Заголовок сообщения:  Re: И снова кодировки

если кол-во сообщений прибавляется, а всё становится только запутаннее, то я знаю чей это топик

Автор:  Phricker [ 22 окт 2015, 14:54 ]
Заголовок сообщения:  Re: И снова кодировки

dimOn писал(а):
если кол-во сообщений прибавляется, а всё становится только запутаннее, то я знаю чей это топик

:mrgreen: :mrgreen: :mrgreen: :mrgreen:

Автор:  stark [ 22 окт 2015, 15:17 ]
Заголовок сообщения:  Re: И снова кодировки

skyb писал(а):
stark писал(а):
а кодировку базы менять ? если cp1251 осталась, то везде должна быть cp1251. Иначе новых помесячные таблицы будут создаваться в другой кодировке . А другие таблицы точно в cp1251 ?

в других таблицах вообще нет проблем, тоесть только с рентсофтом, который был очень давно проинстален а настроен только сейчас


Т.е кодировка базы неверная , а в других таблицах ПОКА нет проблем ? или уже есть но о них не знают.

Автор:  stark [ 22 окт 2015, 15:17 ]
Заголовок сообщения:  Re: И снова кодировки

предлагаю написать в helpdesk.

Автор:  skyb [ 22 окт 2015, 17:08 ]
Заголовок сообщения:  Re: И снова кодировки

подскажите как безопасно грохнуть таблицы, чтоб создать правильные

Автор:  dimOn [ 22 окт 2015, 18:36 ]
Заголовок сообщения:  Re: И снова кодировки

в таблице данные нормальные? или нет?
если нормальные - то надо просто сделать конверт в другую кодировку и всё сконвертируется и будет счастье.
если там уже вопросики, то данные уже потеряны, надо просто сделать очистку или создать заново или как угодно.
просто непонятно в чём с этим проблемы, в чём задача на сей момент итд

Автор:  skyb [ 22 окт 2015, 19:15 ]
Заголовок сообщения:  Re: И снова кодировки

dimOn писал(а):
в таблице данные нормальные? или нет?
если нормальные - то надо просто сделать конверт в другую кодировку и всё сконвертируется и будет счастье.
если там уже вопросики, то данные уже потеряны, надо просто сделать очистку или создать заново или как угодно.
просто непонятно в чём с этим проблемы, в чём задача на сей момент итд

данные в таблице не важны, я бы вообще таблицу снес и заново создал бы, только не потерять бы настройки модуля. да, в таблице тоже вопросы
вопрос заключается в том как удалять безпроблемно таблицы, дабы не перенастраивать модуль и создать их заново

Автор:  stark [ 22 окт 2015, 19:23 ]
Заголовок сообщения:  Re: И снова кодировки

skyb писал(а):
dimOn писал(а):
в таблице данные нормальные? или нет?
если нормальные - то надо просто сделать конверт в другую кодировку и всё сконвертируется и будет счастье.
если там уже вопросики, то данные уже потеряны, надо просто сделать очистку или создать заново или как угодно.
просто непонятно в чём с этим проблемы, в чём задача на сей момент итд

данные в таблице не важны, я бы вообще таблицу снес и заново создал бы, только не потерять бы настройки модуля. да, в таблице тоже вопросы
вопрос заключается в том как удалять безпроблемно таблицы, дабы не перенастраивать модуль и создать их заново


Удалить можно вручную, если данные не нужны.
Установка модуля через bg_installer.sh создаст таблицы. Если не поможет, то надо почистить кэш(как - написано в документации по установки обновлений) и снова запустить установку.

Автор:  ok-2004 [ 30 окт 2015, 18:04 ]
Заголовок сообщения:  Re: И снова кодировки

Воспользовавшись идеями , заложенными в прекрасном скрипте, любезно предоставленным уважаемым dimOn

наваял что-то типа этого:
Код:
echo "SET FOREIGN_KEY_CHECKS=0;" > /root/unicode.sql
mysql -uroot -pxxxxxxxx -e "SHOW TABLES IN bgbilling;" | tail -n +2 | xargs -I '{}' echo -e  "ALTER TABLE {} CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;\nSHOW WARNINGS;" >> /root/unicode.sql
echo "SET FOREIGN_KEY_CHECKS=1;" >> /root/unicode.sql
mysql -uroot -pxxxxxx -vvv bgbilling < /root/unicode.sql 2>&1 >> /root/unicode.log
mysql -uroot -pxxxxxx -e "alter  database bgbilling DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_unicode_ci;"


и скормил мускулю,..
Потом немного погрустил, что все поля типа TEXT сменились на тип MEDIUMTEXT, но уж это - по доке...
Но для модуля бухгалтерии xml-ки в таблице bill_data_x естественно остались в первозданном виде, т.к были типа mediumblob, да и "encoding=windows-1251" в начале не радовала.
Пришлось исхитряться :

Код:
UPDATE bill_data_5 SET xml = REPLACE(xml, 'windows-1251', 'utf-8');
ALTER table bill_data_5 CHANGE xml xml mediumtext CHARACTER SET cp1251;
ALTER TABLE bill_data_5 MODIFY xml mediumtext CHARACTER SET utf8;
ALTER table bill_data_5 CHANGE xml xml mediumblob;


Таперича вродь всё стало на свои места..

Автор:  skyb [ 03 ноя 2015, 11:24 ]
Заголовок сообщения:  Re: И снова кодировки

не, тут не кодировка бд была виновата

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/