Добавление возможности перекодирования базы latin1 в utf8

Предложения по новым функциям, улучшениям и др.

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST alexander70 » 30.11.2009 16:55:16

Спасибо, а Вы можете сказать в каком именно файл добавить, в какое именно место? Сделаю в точности всё как Вы скажете, главное чтобы помогло. Этот скрипт здесь находится: http://azdg.com/scripts.php#2 . Буду благодарен за помощь.
alexander70
 
Сообщения: 69
Зарегистрирован: 18.11.2009 22:31:51

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST zapimir » 30.11.2009 17:38:39

Просто делается поиск по файлам скрипта по слову mysql_connect это строка находится в файле AzDGDatingMedium\include\functions.inc.php
Код: Выделить всё
$mlink=@mysql_connect(C_HOST, C_USER, C_PASS) or die("Can`t connect to server<br>Your mysql login or mysql password is wrong.<br>Check it in config file");

После неё добавляете
Код: Выделить всё
mysql_query("/*!40101 SET NAMES 'utf8' */", $mlink) or die("Error: " . mysql_error());
zapimir
Site Admin
 
Сообщения: 1628
Зарегистрирован: 01.10.2009 22:39:52

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST alexander70 » 30.11.2009 18:47:13

Спасибо! Теперь работает:) Можете сказать, как именно Вы конвертировали базу, что я Вам прислал?
alexander70
 
Сообщения: 69
Зарегистрирован: 18.11.2009 22:31:51

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST zapimir » 30.11.2009 20:43:10

именно так как и описывал выше в 4 пунктах, с помощь дампера 2.
zapimir
Site Admin
 
Сообщения: 1628
Зарегистрирован: 01.10.2009 22:39:52

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST alexander70 » 30.11.2009 20:51:42

Спасибо большое! Теперь буду знать :) У меня ещё есть проблема, не относящаяся к Вашей программе и MySQL. Когда я перекодировал языковые файлы в UTF8, я не могу входить в область администрирования сайта, выходит сообщение об ошибке:

Warning: Cannot modify header information - headers already sent by (output started at /home/content/a/l/e/alex197070/html/monamour-dating.com/azdgmedium/languages/ru/ru.php:1) in /home/content/a/l/e/alex197070/html/monamour-dating.com/azdgmedium/admin.php on line 52

Я слышал, что такие ошибки возникают, когда в php файлах лишние строки за символами окончания php кода >. Но в этих файлах лишних строк я не заметил после конвертации в UTF8. От чего такое может быть? И как это исправить?
alexander70
 
Сообщения: 69
Зарегистрирован: 18.11.2009 22:31:51

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST zapimir » 30.11.2009 20:59:02

Там скорее в начале добавлена сигнатура UTF-8 (она в редакторах обычно и не показывается), сохраняйте в UTF-8 без сигнатуры.
zapimir
Site Admin
 
Сообщения: 1628
Зарегистрирован: 01.10.2009 22:39:52

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST alexander70 » 30.11.2009 21:02:27

Спасибо, а как увидеть эту сигнатуру? Я кодировал эти файлы в обычном блокноте Windows и сохранял их в UTF8, никаких символов не видно:(
alexander70
 
Сообщения: 69
Зарегистрирован: 18.11.2009 22:31:51

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST zapimir » 30.11.2009 21:22:30

Открыть в правильном редакторе (Notepad++, EmEditor и т.п.), там сохранить в UTF-8 без сигнатуры (BOM).
Обычный Блокнот не показывает 3 байта сигнатуры и не сохраняет без неё.
zapimir
Site Admin
 
Сообщения: 1628
Зарегистрирован: 01.10.2009 22:39:52

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST alexander70 » 30.11.2009 22:47:16

Да, спасибо! Notepad++ помог:) Там ещё возникла проблема, при регистрации, заполняю имя Александр (9 букв), а выходит сообщение об ошибке:

Мы просим прощения, но были обнаружены следующие ошибки:
Неверное имя. Имя должно быть от 2 до 16 знаков

Тоже наверное с UTF8 связано? Вроде бы надо увеличить количество символов, но в админке по максимуму установлено, 16 символов, думаю как это исправить.
alexander70
 
Сообщения: 69
Зарегистрирован: 18.11.2009 22:31:51

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST prosto » 30.11.2009 23:30:49

В UTF8 каждая русская буква занимает 2 байта, а некоторые символы занимают и 3. Можно использовать, например, функцию iconv_strlen при подсчете длины.
prosto
 
Сообщения: 20
Зарегистрирован: 16.10.2009 02:18:51

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST zapimir » 30.11.2009 23:36:23

Простой смены кодировки скрипта не всегда достаточно, некоторые функции также придется переделать, использовать функции для многобайтных строк, к примеру, определение длины строки вместо strlen использовать mb_strlen
zapimir
Site Admin
 
Сообщения: 1628
Зарегистрирован: 01.10.2009 22:39:52

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST alexander70 » 01.12.2009 08:42:59

Скажите, пожалуйста, а почему сейчас в phpmyadmin русский язык виден, на сайте тоже, а в дампе не виден? Когда я преобразовывал языковые файлы в UTF8 , русский язык в них также виден.
alexander70
 
Сообщения: 69
Зарегистрирован: 18.11.2009 22:31:51

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST zapimir » 01.12.2009 17:05:10

Во-первых, убедиться что дамп делался в режиме авто. Во-вторых убедиться что в редакторе выбрана кодировка utf8.
zapimir
Site Admin
 
Сообщения: 1628
Зарегистрирован: 01.10.2009 22:39:52

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST alexander70 » 01.12.2009 20:43:55

Пытаюсь сконвертировать дамп UTF8 по Вашей инструкции, сделал дамп авто, потом попытался импортировать этот дамп в другую базу с CP1251 с коррекцией кодировки, не импортируется:( Что я сделал не так?
alexander70
 
Сообщения: 69
Зарегистрирован: 18.11.2009 22:31:51

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST zapimir » 01.12.2009 21:34:37

нужно делать по второй инструкции, первая касается случаев когда у таблиц кодировка latin1, вторая для utf8
zapimir
Site Admin
 
Сообщения: 1628
Зарегистрирован: 01.10.2009 22:39:52

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST alexander70 » 01.12.2009 21:59:41

Извините, внимательно посмотрел весь топик, но вторую инструкцию не вижу :) Если Вам не трудно, напишите, пожалуйста, снова вторую инструкцию, как исправить базу, чтобы она работала на сайте с кодировкой UTF8.
alexander70
 
Сообщения: 69
Зарегистрирован: 18.11.2009 22:31:51


Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST alexander70 » 02.12.2009 08:20:49

Большое спасибо! Сейчас получилось:) Вчера не получилось, потому что я экспорт сделал не в Latin1 , а авто :) Ваша программа гениальная :) б А что значит в программе Обнулить AUTO_INCREMENT ? В каких случаях надо там ставить галочку?
alexander70
 
Сообщения: 69
Зарегистрирован: 18.11.2009 22:31:51

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST zapimir » 02.12.2009 11:43:11

В случаях когда нужно обнулить AUTO_INCREMENT :) Например, когда заливается только структура таблицы, и нужно сбросить счетчик AUTO_INCREMENT.
zapimir
Site Admin
 
Сообщения: 1628
Зарегистрирован: 01.10.2009 22:39:52

Re: Добавление возможности перекодирования базы latin1 в utf8

UNREAD_POST alexander70 » 02.12.2009 20:29:45

Хотел ещё спросить Вас, для определения длины полей, количества символов, достаточно вместо оператора strlen использовать mb_strlen . То есть можно просто заменить один оператор другим во всех файлах, где он используется?
alexander70
 
Сообщения: 69
Зарегистрирован: 18.11.2009 22:31:51

Пред.След.

Вернуться в Предложения

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Яндекс.Метрика