Как подружить кодировку в БД на сервере и локалке?

12
M8
На сайте с 10.03.2013
Offline
15
773

Проблема такая: когда выгружаю БД с сервера и пробую подгрузить её на локалке - кодировка косячится. И наоборот, когда с локалки гружу базу на сервак - там косячится.

И там и там кодировка базы: utf8_general_ci

Выгрузку и Подгрузку пробовал делать разными средствами: phpMyAdmin, Sypex Dumper, стандартный бекап сервера - везде одна проблема. Пробовал при подгрузке ставить принудительную корректировку кодировки - не помогло.

Финкция подключения к БД:

function StartBD()
{
$start = mysql_connect('localhost:3306','root','');
if($start)
{
$db = mysql_select_db('my_bd',$start);
if($db)
{
return true;
}
}
return false;
}

Для наглядности, приложил архив с двумя файлами.

[ATTACH]129353[/ATTACH]

Это экспорт одной и той же таблицы, одна с сервера, вторая - с локалки.

Помогите разобраться?

zip 2bd.zip
Как заработать МИЛЛИОН. Все СЕКРЕТЫ заработка в РУнете (http://info7.biz/)
vlad00777
На сайте с 24.12.2009
Offline
119
#1

Была такая же проблема. Помогло насколько помню изменение кодирови таблицы и полей на utf-8. Прогуглите изменение кодировки таблицы и выполпите запросы к базе. Сейчас не дома просто не смогу скинуть.

Верстка. Качественно! Адаптивная, резиновая, с параллаксом и прочими плюшками. В ЛС.
siv1987
На сайте с 02.04.2009
Offline
427
#2

SET NAMES

А вообще в любом нормальном дампере можно указать кодировку экспорта

M8
На сайте с 10.03.2013
Offline
15
#3

vlad00777, скиньте плиз как будет возможность конкретный пример.

А вообще в любом нормальном дампере можно указать кодировку экспорта

Sypex Dumper по вашему нормальный? Пробовал экспериментировать - не помогло :(

UPD:

Сконвертил на локалке БД в utf-8 залил на сервер. В БД на сервере теперь отображается норм, но на сайте всё в вопросиках...

Нагуглил:

mysql_query("set names utf-8");

Но как правильно и какой строкой вставить не пойму..

M8
На сайте с 10.03.2013
Offline
15
#4

Попробовал в cp1251 сконвертить и подгрузить - криво.

Видимо без set names никак не обойтись..

Подскажите как правильно и куда вставить? (функцию подключения к БД давал выше)

vlad00777
На сайте с 24.12.2009
Offline
119
#5

Попробуйте это: http://fresh-flow.ru/izmenenie-kodirovki-vsex-tablic-v-mysql/

Кодировку базы проверьте и кодировку таблиц, они должны быть одинаковы как и кодировка файла для импорта.

M8
На сайте с 10.03.2013
Offline
15
#6

Таблицы и так в УТФ: utf8_general_ci

Поля: CHARSET=utf8

Файл для импорта: UTF-8 (без BOM)

Запрос:

SHOW VARIABLES LIKE 'char%'

Выдаёт такую картинку:

[ATTACH]129373[/ATTACH]

Как это править?

В mysql на серваке все поля читаемы, а на сайте инфа выводится вопросиками.

mysql_query("set names utf-8");

Видимо не так использую, тоже не помогает..

Пробовал конвертнуть все таблицы запросом:

ALTER TABLE `база`.`таблица` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

На выходе - так же вопросики..

Когда через сайт сохраняю в БД данные, на сайте они отображаются нормально, а в БД так: Ïðîâåðêà

jpg 129373.jpg
B1
На сайте с 13.12.2012
Offline
28
#7

minfin89, сайт на чем UTF-8 или win-1251?

пробуйте в .htaccess прописать "AddDefaultCharset utf-8"

mysql_query("set names utf-8");

сразу после mysql_connect

M8
На сайте с 10.03.2013
Offline
15
#8

Сайт на win-1251. Уже пробовал БД в неё же конвертнуть - та же проблема.

Когда ставлю mysql_query("set names utf-8"); сразу после mysql_connect страница уходит в постоянный ребут (обновляется).

Когда в htaccess ставлю - косячится кодировка самого сайта, БД также не правится..

Честно говоря уже запутался...

B1
На сайте с 13.12.2012
Offline
28
#9
minfin89:
Когда ставлю mysql_query("set names utf-8"); сразу после mysql_connect страница уходит в постоянный ребут (обновляется).

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

а если сайт на windows-1251 то и БД конверте в такой же кодировке. зачем utf-8?

freezebreeze
На сайте с 31.10.2013
Offline
9
#10
minfin89:
Сайт на win-1251. Уже пробовал БД в неё же конвертнуть - та же проблема.

Когда ставлю mysql_query("set names utf-8"); сразу после mysql_connect страница уходит в постоянный ребут (обновляется).

Когда в htaccess ставлю - косячится кодировка самого сайта, БД также не правится..

Честно говоря уже запутался...

mysql_query("set names utf8;");

1) Вы точку с запятой пропустили. В mysql все запросы заканчиваются ";"

2) кодировки utf-8 нет в представлении MySQL, есть utf8

Верить никому нельзя. Мне — можно.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий