Задавайте вопросы, мы ответим
Вы не зашли.
Есть дамп базы, который надо переконвертировать из cp-1251 в utf-8. У кого какие предложения?
Неактивен
Самое простое:
shell> recode utf8..сз-1251 дамп.sql
В винде есть аналоги типа Shtirlitz
Не забудьте предварительно сделать копию дампа!
И ещё, рекомендую сначала посмотреть статью http://sqlinfo.ru/articles/info/5.html
Неактивен
Может быть перекодировать не надо, просто SET NAMES правильно прописать в начале дампа?
Неактивен
К сожалению, доступа к linux-серверу не имею
Неактивен
rgbeast написал:
Может быть перекодировать не надо, просто SET NAMES правильно прописать в начале дампа?
Не получится, т.к. Collition (сравнение) останутся cp-1251 у таблиц
Неактивен
Может я вышлю дамп базы (200КБ), а Вы мне ее на linux- сервере смените кодировку? Буду премного благодарен.
Неактивен
Ispanec написал:
rgbeast написал:
Может быть перекодировать не надо, просто SET NAMES правильно прописать в начале дампа?
Не получится, т.к. Collition (сравнение) останутся cp-1251 у таблиц
Если в описании структур таблиц явно указана кодировка, то только перекодировать дамп будет недостаточно. Вам придется заменить упоминание cp-1251 (это можно сделать в любом текстовом редакторе).
Я всё же, как и rgbeast, полагаю, что Вам нет необходимости перекодировать дамп.
Для каких целей Вы хотите перекодировать дамп?
В какой кодировке реально находятся данные в дампе?
Неактивен
vasya написал:
Я всё же, как и rgbeast, полагаю, что Вам нет необходимости перекодировать дамп.
Для каких целей Вы хотите перекодировать дамп?
В какой кодировке реально находятся данные в дампе?
В структуре базы написано, что сравнение- cp-1251. Хочу залить дамп с локального сервера на хостинг, а там сравнение идет по utf-8
Неактивен
А сам дамп в какой кодировке? И что написано в начале дампа SET NAMES ... ?
Вам достаточно просто изменить структуру таблиц в дампе (изменить там кодировку и collation на UTF-8). SET NAMES, если он сообтветствует кодировке самого дампа, оставить как есть
Неактивен
rgbeast написал:
А сам дамп в какой кодировке? И что написано в начале дампа SET NAMES ... ?
Вам достаточно просто изменить структуру таблиц в дампе (изменить там кодировку и collation на UTF-8). SET NAMES, если он сообтветствует кодировке самого дампа, оставить как есть
Так и не нашел SET NAMES. Выкладываю базу (202KB). Помогите подправить.
Неактивен
Дамп у Вас в кодировке utf8
В начале дампа добавляете строку SET NAMES utf8; (Эта команда сообщит серверу в какой кодировке поступают данные).
Далее в определении таблиц меняете cp1251 на utf8
И то и другое делается в любом текстовом редакторе. После чего заливаете дамп.
Неактивен
Если я меняю редактором сз1ё251 на utf8, то сравнение получается utf8_general_ci, а нужно utf8_unicode
Неактивен
Ну тогда меняйте CHARSET cp1251 на CHARSET utf8 COLLATE utf8_unicode
Неактивен
А чем Вас не устраивает utf8_general_ci?
Неактивен
vasya написал:
Ну тогда меняйте CHARSET cp1251 на CHARSET utf8 COLLATE utf8_unicode
Заменил CHARSET=cp1251 на CHARSET=utf8 COLLATE=utf8_unicode_ci
Ничего не помогает. Все равно вместо русских символов отображаются вопросы.
Неактивен
А в начале дампа добавили строку SET NAMES utf8; ?
Неактивен
vasya написал:
А в начале дампа добавили строку SET NAMES utf8; ?
конечно
Неактивен
Если коротко, то ситуация следующая - у Вас есть база, в которой хранятся данные в кодировке utf8. Но кроме этого есть:
а) скрипт (насколько я понимаю PHP), который обращается за этими данными. При этом MySQL преобразует данные из кодировки базы в кодировку Вашего соединения, поэтому после установки соединения рекомендуется в явном виде сообщить серверу кодировку, в которой Вы хотите получать данные. Например, SET NAMES utf8;
б) браузер, который для правильного отображения данных, должен знать в какой кодировке они находятся. Для этого используют обычно параметр HTTP-ответа Content-type. В PHP, например, его можно установить командой:
header ("Content-type: text/html; charset=utf8");
Подробнее см темы:
http://sqlinfo.ru/forum/viewtopic.php?id=83
http://sqlinfo.ru/forum/viewtopic.php?id=301
http://sqlinfo.ru/forum/viewtopic.php?id=302
Неактивен
Данная база предназначена для движка Joomla 1.0
Неактивен
У меня на локальном компьютере стоит DENWER. В phpMyAdmin я поменял кодировку на UTF-8 и сравнение на UTF8-unicode-ci. Делаю дамп базы, восстанавливаю на сервере (с теми же кодировками), а у меня в структуре напротив названий таблиц написано сранение cp1251-general-ci. Соответственно, вместо русских букв отображаются вопросики. Видимо, потому что база создавалась до того как я на локальном компьютере поменял кодировку на UTF. Что можно сделать?
Неактивен
Для начала, определитесь, в какой кодировке Вы хотите, чтобы были Ваши базы.
Если это UTF8, надо преобразовать каждую таблицу в эту кодировку
ALTER TABLE name CONVERT TO CHARSET utf8;
Наконец, не забывайте, что вопросительные знаки появляются не обязательно из-за
того, что данные записаны не правильно. Они могут появляться из-за того, что Вы
не выполнили SET NAMES на клиенте перед чтением.
Неактивен