Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Перекодировка CP1252 в CP1251
Форумы портала PHP.SU » Разное » Прочее » Перекодировка CP1252 в CP1251

Страниц (1): [1]
 

1. SergeantPEPPER - 12 Февраля, 2009 - 19:57:10 - перейти к сообщению
Доброго врмени суток всем.

Столкнулся с проблемой: есть файл-дамп базы данных, но в испорченной кодировке. Сайт http://www[dot]artlebedev[dot]ru/tools/decoder/ сказал следующее (кстати, может и неверно!): Преобразование CP1252 -> CP1251.

Проблема осталась только в том, что sql файл весит около 80Мб, что естесственно лишает возможности пользоваться онлайн перекодировщиком.

Решил написать скрипт, открывающий дамп и переводящий все через iconv, но почему то на выходе имею файл с пятью непонятными символами-кракозябрами и все.
Как бы решить эту проблемку?
2. vitaliy_mad - 13 Февраля, 2009 - 01:29:40 - перейти к сообщению
SergeantPEPPER пишет:
но в испорченной кодировке

во первых кодировка испорченной не может быть... она может быть не та что думаете...

Во-вторых: было бы не плохо привести скрипт, который написан для конвертирования...
и наконец: какие нибудь осмысленные данные в киррилице в виде в котором они храняться в файле+под какой стемой работаете(судя о всему Виндовс)... тогда больше шансов получить ответ....
3. Борис84 - 05 Декабря, 2013 - 12:45:25 - перейти к сообщению
Столкнулся с той же проблемой. Причиной данного косяка является то, что для обмена данными между скриптом и базой данных не задана кодировка по-умолчанию или задана, но не та. Задайте utf-8:


$conn = new mysqli ($host, $user, $pass, $db);

// проверка соединения
if (mysqli_connect_errno()) {
printf("<span style=\"color: red;\">Не удалось подключиться: %s</span>\n", mysqli_connect_error());
//echo "<p>".mysqli_connect_errno();
exit();
}

// изменение набора символов на utf8
if (!$conn->set_charset("utf8")) {
printf("Ошибка при загрузке набора символов utf8: %s\n", $conn->error());
} else {
printf("Текущий набор символов: %s\n", $conn->character_set_name());
}

Должно заработать.

 

Powered by ExBB FM 1.0 RC1