forum.bitel.ru http://forum.bitel.ru/ |
|
utf-8 бд http://forum.bitel.ru/viewtopic.php?f=1&t=7683 |
Страница 1 из 2 |
Автор: | dimOn [ 05 фев 2013, 18:12 ] |
Заголовок сообщения: | utf-8 бд |
С 5.3 планируется всю работу с БД, а также почти все остальные взаимодействия перевести на UTF-8. Новые базы будут создаваться уже в UTF-8, старые без перекодировки работать тоже будут (ну планируется по крайней мере). Но свою тестовую мы хотим перекодировать для чистоты эксперимента. Так что новые разработки тестироваться будут уже как будто база в UTF-8. Вопрос: будете ли вы перекодировать свою БД? Или оставите в 1251? И почему. И вообще какие мысли на этот счёт? Дискасс! |
Автор: | Phricker [ 05 фев 2013, 18:36 ] |
Заголовок сообщения: | Re: utf-8 бд |
А можно услышать причины? Что изменится для конечного пользователя? Новые плюшки или что-то из-за чего стоит вообще это делать? Так например переходя с 5.1 на 5.2 я знал что мне нужны шаблоны договора в новом FOP, модуль Inet в будущем ну и еще пара плюшек о которых я уже не упомню. А тут что будет нового? да, лень читать в интернете. я знаю что там будет поддерживаться больше кодировок и блаблабла, что символ в cp1251 весит 1 байт а в утф8 - 2 байта... Но, что это даст в данном конкретном случае? |
Автор: | Akhmat [ 05 фев 2013, 19:55 ] |
Заголовок сообщения: | Re: utf-8 бд |
давно пора, что тут обсуждать. |
Автор: | snark [ 05 фев 2013, 22:51 ] |
Заголовок сообщения: | Re: utf-8 бд |
dimOn писал(а): С 5.3 планируется всю работу с БД, а также почти все остальные взаимодействия перевести на UTF-8. dimOn писал(а): Новые базы будут создаваться уже в UTF-8 Надеюсь это будет utf8_general_ci, т.к. согласно ману: Цитата: For any Unicode character set, operations performed using the xxx_general_ci collation are faster than those for the xxx_unicode_ci collation. For example, comparisons for the utf8_general_ci collation are faster, but slightly less correct, than comparisons for utf8_unicode_ci. The reason for this is that utf8_unicode_ci supports mappings such as expansions; that is, when one character compares as equal to combinations of other characters. dimOn писал(а): старые без перекодировки работать тоже будут (ну планируется по крайней мере) Доступ будет через SET NAMES? Смысл? dimOn писал(а): будете ли вы перекодировать свою БД? Да, буду. Да, это: Код: cat <<TXT > bgb.sql DROP DATABASE IF EXISTS bgbilling; CREATE DATABASE bgbilling DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE bgbilling; TXT mysqldump --quick --single-transaction --default-character-set=cp1251 bgbilling >> bgb.sql cat bgb.sql | iconv -f CP1251 -t UTF-8 > bgb.utf mysql --default-character-set=utf8 < bgb.utf займет немного времени, но UTF-изация того стоит, ящитаю. Phricker писал(а): А можно услышать причины? Что изменится для конечного пользователя? Люди наконец то смогут использовать родные языки. Phricker писал(а): символ в cp1251 весит 1 байт а в утф8 - 2 байта Это, пожалуй, единственный геморрой. Единственный, пока не ясный для меня момент - это кодировка динкода. Если БД будет в UTF, то код, наверное, тоже надо будет конвертить, т.к. русская "строка" в 1251 и "строка" в UTF (цифрам пофиг, речь про строчки поиска, например) - это разные строки, не? |
Автор: | Phricker [ 05 фев 2013, 23:05 ] |
Заголовок сообщения: | Re: utf-8 бд |
snark писал(а): dimOn писал(а): С 5.3 планируется всю работу с БД, а также почти все остальные взаимодействия перевести на UTF-8. Phricker писал(а): А можно услышать причины? Что изменится для конечного пользователя? Люди наконец то смогут использовать родные языки. Узнал что аллилуя пишется через два Л ))) А для меня родной - русский. Так что я просто присоединюсь ко всеобщей радости ) |
Автор: | snark [ 06 фев 2013, 06:38 ] |
Заголовок сообщения: | Re: utf-8 бд |
Phricker писал(а): Узнал что аллилуя пишется через два Л ))) Аллилуйа/аллилуиа слышал, а что такое "аллилуя"? ))) |
Автор: | Cromeshnic [ 06 фев 2013, 08:39 ] |
Заголовок сообщения: | Re: utf-8 бд |
dimOn писал(а): Вопрос: будете ли вы перекодировать свою БД? А насколько это критично? Плюсы, минусы? Какие могут быть проблемы, если не перекодировать? |
Автор: | skyb [ 06 фев 2013, 10:15 ] |
Заголовок сообщения: | Re: utf-8 бд |
эээээ, я тоже не в теме, для меня это очередной гемор при переходе |
Автор: | lda [ 06 фев 2013, 11:16 ] |
Заголовок сообщения: | Re: utf-8 бд |
Гемор конечно будет, но перекодировать базу на utf8 будем. Главное продумать процесс перекодировки базы более детально. |
Автор: | stark [ 06 фев 2013, 12:03 ] |
Заголовок сообщения: | Re: utf-8 бд |
Никто не говорит об обязательной конвертации . Хотели сделать поддержку utf8 для тех, кто хочет конвертировать, и для новых клиентов рекомендовать utf8. |
Автор: | stark [ 06 фев 2013, 12:07 ] |
Заголовок сообщения: | Re: utf-8 бд |
snark писал(а): Единственный, пока не ясный для меня момент - это кодировка динкода. Если БД будет в UTF, то код, наверное, тоже надо будет конвертить, т.к. русская "строка" в 1251 и "строка" в UTF (цифрам пофиг, речь про строчки поиска, например) - это разные строки, не? Дин код итак уже в utf8 . Это не связано с кодировкой базы |
Автор: | dimOn [ 06 фев 2013, 13:57 ] |
Заголовок сообщения: | Re: utf-8 бд |
Phricker писал(а): А можно услышать причины? Что изменится для конечного пользователя? Новые плюшки или что-то из-за чего стоит вообще это делать? Так например переходя с 5.1 на 5.2 я знал что мне нужны шаблоны договора в новом FOP, модуль Inet в будущем ну и еще пара плюшек о которых я уже не упомню. А тут что будет нового? да, лень читать в интернете. я знаю что там будет поддерживаться больше кодировок и блаблабла, что символ в cp1251 весит 1 байт а в утф8 - 2 байта... Но, что это даст в данном конкретном случае? Изменится то, что однобайтовые кодировки — зло. Потенциальный гемор с кодировками и кракозябрами в дальнейшем уменьшается на порядки. Новых фишек это не даст, просто стандарт это и везде если utf-8, то это хорошо. Символ кириллицы занимает 2 байта, да. Но русских символов относительно общего объёма БД там 1% наберётся ли? В основном размер то всякие логи, и прочая шняга. Ну вырастет размер базы на 0.5% — это некритично, имхо. |
Автор: | dimOn [ 06 фев 2013, 14:03 ] |
Заголовок сообщения: | Re: utf-8 бд |
snark писал(а): dimOn писал(а): старые без перекодировки работать тоже будут (ну планируется по крайней мере) Доступ будет через SET NAMES? Смысл? Не, обмен с сервером от кодировки базы мало зависит, драйвер и драйвер jdbc сам решает чего там как. Т.е. у нас сейчас уже некоторые сидят на юникодной базе. |
Автор: | dimOn [ 06 фев 2013, 14:04 ] |
Заголовок сообщения: | Re: utf-8 бд |
Cromeshnic писал(а): dimOn писал(а): Вопрос: будете ли вы перекодировать свою БД? А насколько это критично? Плюсы, минусы? Какие могут быть проблемы, если не перекодировать? Пока не знаем, но скоро узнаем |
Автор: | dimOn [ 07 фев 2013, 18:00 ] |
Заголовок сообщения: | Re: utf-8 бд |
Вопрос возник ещё такой интересный. Что делать с выгружаемыми файлами csv, например. С одной стороны однобайтовые кодировки там парфозны, с другой будет много вопросов про «неправильные шрифты в экселе» ©. |
Автор: | snark [ 07 фев 2013, 18:27 ] |
Заголовок сообщения: | Re: utf-8 бд |
Один раз укажут кодировку и вопрос отпадет, но будет задаваться другими |
Автор: | stark [ 08 фев 2013, 12:37 ] |
Заголовок сообщения: | Re: utf-8 бд |
snark писал(а): Один раз укажут кодировку и вопрос отпадет, но будет задаваться другими А это excell ? Или openoffice/libreoffice?. У меня винды под руками нет , поэтому не могу проверить в excell, почему то мне запомнилось что он не спрашивает кодировку при открытии csv-файлов . В openoffice/libreoffice то проблем нет - там сразу окошко вылетает с выбором кодировки при открытии. |
Автор: | dimOn [ 08 фев 2013, 14:35 ] |
Заголовок сообщения: | Re: utf-8 бд |
поздно, я везде уже поменял |
Автор: | snark [ 08 фев 2013, 14:38 ] |
Заголовок сообщения: | Re: utf-8 бд |
stark писал(а): А это excell ? Или openoffice/libreoffice? Это openoffice, но можу и на ёкселе проверить если надо. |
Автор: | northbear [ 09 фев 2013, 00:14 ] |
Заголовок сообщения: | Re: utf-8 бд |
О. ну таки здравый смысл восторжествовал! Одобрям-с целиком и полностью... Менять однозначно. Особенно тем, у кого биллинг вертится на Linux... А лучше всем и сразу, дабы вообще забыть тему кодировок как класс. Писать данные в базу можно будет на любом языке... Минус, кроме дополнительной операции при апгрейде, база станет больше. Точнее та часть, что отвечает за договора. Это мизер, если у вас база хранит данные за 3-4 года... В общем всё правильно делаете, ребята... Желаю вам удачи. Я, к счастью или к сожалению, из телекома ушёл в разработку и уже наверное не ваш клиент. Но должен сказать, что BG-Billing оставил впечатление надежного, рабочего продукта. Особенно на фоне всяких UTM и LAN-billing'ов наших партнеров. За 6-7 лет эксплуатации серьезных сбоев по вине биллинга не было ни разу... Но backup'ы всё равно рулят... )) |
Автор: | survivor [ 29 мар 2013, 20:15 ] |
Заголовок сообщения: | Re: utf-8 бд |
У кого-нибудь есть успешный опыт конвертации? Есть какие-нибудь грабли? Хочу попробовать конвертнуться в utf Сервер 5.2 сборка 1443 |
Автор: | dimOn [ 01 апр 2013, 11:33 ] |
Заголовок сообщения: | Re: utf-8 бд |
У некоторых из наших клиентов база всегда была в utf-8, вроде всё работало. По сути никакой разницы биллингу нету, мы проверяли |
Автор: | survivor [ 01 апр 2013, 12:48 ] |
Заголовок сообщения: | Re: utf-8 бд |
А у меня сконвертить не получается iconv спотыкается на символах 0x098: iconv: illegal input sequence at position ... а этих символов в дампе базы чуть менее чем много... |
Автор: | dimOn [ 01 апр 2013, 14:58 ] |
Заголовок сообщения: | Re: utf-8 бд |
а как конвертитуете то? |
Автор: | snark [ 01 апр 2013, 16:50 ] |
Заголовок сообщения: | Re: utf-8 бд |
Скорее всего так: Код: cat dump_cp1251.sql | iconv -f CP1251 -t UTF-8 > dump_utf8.sql Но походу в дампе есть табличка с модулями лежащими в БД и на ней iconv спотыкается. |
Автор: | survivor [ 01 апр 2013, 17:30 ] |
Заголовок сообщения: | Re: utf-8 бд |
Цитата: а как конвертитуете то? Код: mysqldump -u root -p --quick --single-transaction --default-character-set=cp1251 -r original.sql bgbilling iconv -f CP1251 -t UTF-8 -o utf.sql original.sql Цитата: Но походу в дампе есть табличка с модулями лежащими в БД и на ней iconv спотыкается. точно P.S. Базу я уже грохнул и создал изначально уникодовой |
Автор: | snark [ 01 апр 2013, 17:42 ] |
Заголовок сообщения: | Re: utf-8 бд |
Делай дамп _без_ таблички с модулями - все прокатит. |
Автор: | stark [ 01 апр 2013, 19:56 ] |
Заголовок сообщения: | Re: utf-8 бд |
snark писал(а): Делай дамп _без_ таблички с модулями - все прокатит. Не факт.. Еще есть поля, где хранится xml целиком(счета в бухгалтерии, и другие места есть). Там 2 случая 1) xml уже в utf8, тогда конвертер ее испортит . 2) xml в cp1251, то конвертер поменяет ее содержимое на правильное , но не поменяет заголовок , поэтому при чтении они неправильно будет интерпретироваться, в этом случае заголовок отдельным запросом поправить нужно. |
Автор: | stark [ 01 апр 2013, 20:01 ] |
Заголовок сообщения: | Re: utf-8 бд |
Еще есть способ через alter table ..convert . http://deer.org.ua/2009/08/02/1/ Но с xml опять те же проблемы . |
Автор: | survivor [ 02 апр 2013, 11:18 ] |
Заголовок сообщения: | Re: utf-8 бд |
Кстати, хоть я и получил в итоге utf8 базу (пересоздав) и хоть я и коннекчусь к ней из сервера по utf8: db.url=jdbc:mysql://127.0.0.1/bgbilling?useUnicode=true&characterEncoding=utf8&allowUrlInLocalInfile=... и домашний кабинет открывается тоже в utf8, все равно иноязычные символы будучи вбиты - например - в новости, отображаются и клиенте и в домашнем кабинете как вопросики.... |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |