Страница 5 из 5

Добавлено: 07.09.2007 14:50
VVVas
Shadow
Со старого хостинга дамп получается нормальный? С нормальными русскими буквами? Если да то колебайтесь с новым хостингом, если нет - колебайтесь со старым хостингом, чтобы нормально выгрузило.

Добавлено: 24.10.2007 1:27
RE@n!m@TOR
Приветствую! Извиняюсь, если что-то не так скажу....

Прблема заключается в следующем: с помощью Дампера был сделан бэкап базы данных форума (MySQL client version: 3.23.49), после этого было все снесено и залиты новые файлы для установки форума версии 2.0.22. Через phpMyAdmin (2.8.1) все старые таблицы БД были удалены.

Форум установился нормально и полностью фунциклирует.

Пробую восстановить базу данных - все восстанавливается... только появляются иероглифы... т.е. получается, что форум и весь текст самого движка отображается нормально, разделы и топики - "кракозябры". При принудительной смене кодировки браузера с WIN1251 на KOI8-R, все темы и топики начинают отображаться нормально, а вот форум (движок) - превращается в иероглифы.

Исходя из этого сделал вывод, что БД сохранена в кодировке KOI8-R, а форум установлен в Win-1251.

Отсюда возникает вопрос, каким образом перекодировать базу в Win-1251?

В Дампере прописано forced.

Бэкап делался без forced.

сем откликнувшимся нереальное количество респектов. Надо очень срочно....

Линк на форум:
http://www.telemark.ru/forum/index.php

Добавлено: 24.10.2007 8:32
/DiOs
RE@n!m@TOR
Самым простым способом? Открыть дамп редактором FARа, поставить кодировку ту, в которой дамп читается сейчас (Shift-F8 ), выделить все, Ctrl-X, выставить нужную кодировку, Ctrl-V, F2. Все.

Хотя, если вы FARом не пользуетесь, это может оказаться не самым простым :)

Добавлено: 24.10.2007 11:01
VVVas
RE@n!m@TOR
Любым текстовым редактором который умеет преобразовывать кодировки.

Добавлено: 25.10.2007 0:03
RE@n!m@TOR
Благодарю за помощь, вопрос решен.

Добавлено: 29.10.2007 21:29
Matt
В данный момент тоже занимаюсь переключением БД на utf-8, принцип и все такое понятно, но у меня возникла такая странная трабла:
буквы "ш" и "И" показывает вот так - �?
Никак не могу сообразить, что такое. Господа, если кто знает, подскажите!

Добавлено: 30.10.2007 17:44
Matt
Все разобрался.
Если кому-то это интересно, описываю процесс и нюанс:
1) в файле lang_main ставим utf-8.
2) сервер mysql должен работать в utf-8, для чего в его настройках (для локального сервера) переписываем на utf-8. Либо, если у хостера стоит другая выдача - то просим его.
3) Пересохраняем языковые файлы в формате utf, в принципе любым редактором. Например тем же Drewmweaver.

Уже на данном этапе все должно показывать нормально. Но, данные в БД будут хранится в вашей старой кодировке. Поэтому переписываем БД (если данные там есть, то их надо перекодировать в UTF)

4) сохраняем дамп БД, исключая содержимое таблиц search_***. Если сервер mysql работает на utf-8, то дамп уже будет в UTF.
5) Меняем в любом редакторе кодировку, например cp1251 на utf8.
6) Возвращаем данные в базу.

Вот вроде так.
Единственно, что нужно учитывать. Для текста в формате UTF надо больше места, поэтому некоторые поля в таблицах надо увеличивать, а также если где-то в шаблонах есть ограничение на ввод символов - тоже.
Еще возможны нюансы с работой скриптов php, например Perl-функции preg_replace.

Добавлено: 06.11.2007 18:54
Matt
Дополнение. Насчет второго пункта чуть подробнее:

Имеется ввиду, что клиент MySQL должен работать в кодировке UTF-8. Но, поскольку менять хостер этот параметр не может (обычно он общий для все клиентов, если только вы не на выделенном сервере).
Хостинги в России обычно ставят там cp1251, поскольку общая масса сидит на ней, а за бугром чаще всего именно UTF-8.
Значит, в случае, если вы попали на клиента в cp1251, то придется вам дополнительно прописать строку $this->sql_query("SET NAMES 'UTF8'");
каждый раз когда вы подключаетесь к БД. Работает это кажется только начиная с MySQL 4.
В нашем случае это файл db\mysql4.php,
в функции function sql_db($sqlserver, $sqluser, $sqlpassword, $database, $persistency = true)

Re:

Добавлено: 08.04.2009 15:31
mc-sim
Batareykin писал(а):и всё таки у меня траблы... Получил доступ прописал forced->cp1251, забекапил, зафигарил на localhost всё пашет. Заливаю на хостинг, там вопросики...
Я не совсем понял где вставить:
mysql_query("/*!40101 SET NAMES 'cp1251' */") or die("Error: " . mysql_error());
......
Доброго времени суток....
Выкладываю для начинающих, для тех, кто имел проблемы со знаками вопроса в скрипте Sypex Dumper Lite 1.0.8
1. оригинал файла mysql4.zip
2. Модифицированный и корректно работающий mysql4_mod.zip
Строка была вставленна тут:
<.....>
function sql_db($sqlserver, $sqluser, $sqlpassword, $database, $persistency = true)
{
$this->persistency = $persistency;
$this->user = $sqluser;
$this->password = $sqlpassword;
$this->server = $sqlserver;
$this->dbname = $database;

$this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server, $this->user, $this->password) : mysql_connect($this->server, $this->user, $this->password);
mysql_query("/*!40101 SET NAMES 'cp1251' */") or die("Error: " . mysql_error());
if( $this->db_connect_id )
{
if( $database != "" )
{
$this->dbname = $database;
$dbselect = mysql_select_db($this->dbname);

if( !$dbselect )
<.....>
Да.... Это файлы для phpBB 2