Задавайте вопросы, мы ответим
Вы не зашли.
Почему при установке кодировки utf8 (в дополнение к указанию её в базах данных) в конфигурационном файле my.cnf MySQL 5.1 ОС ALT Linux следующей директивой:
default-character-set=utf8
клиентские кодировки latin1 заменяются на utf8, но в консоли по запросам mysql кириллица преобразуется (в основном) в вопросительные знаки, в то время как при просмотре в браузере остаётся неизменной? Ведь данную директиву, наоборот, советуют вводить для избавления от этих знаков!
Неактивен
Попробуйте установить кодировку соединения:
SET NAMES utf8;
Неактивен
Подскажите пожалуйста, у меня похожие проблемы с сопоставлением таблиц latin1 и cp1251,
решение на форуме так и не нашел, вопрос такой,
как мне, пользуясь phpMyAdmin (Денвер2 и 3) на разных версиях mySQL, загрузить старый дамп в нужной кодировке на новом сервере 5.0 (сохраняю его в utf8 и cp1251, кодировка сравнения таблиц по умолчанию cp1251) таблицы на новом сервере создаются такие:
character_set_database latin1
character_set_server latin1
collation_database latin1_swedish_ci
почитал статью http://sqlinfo.ru/articles/info/5.html
добавляю строки в дамп
SET NAMES utf8;
SET character_set_server=cp1251;
далее дамп БД;
получается тоже самое, общая кодировка сопоставления остается latin1_swedish_ci, а нужна cp1251.
подскажите пожалуйста что не так делаю.
Неактивен
Старый дамп - это из какой версии?
Приведите кусок из дампа м create table и insert
Неактивен
Вопрос решился (вот хорошая статься) (версия дампа -- phpMyAdmin SQL Dump -- version 2.6.1)
Сделал так, при помощи phpMyAdmin создаем дамп в кодировке таблиц (или колонок) по умолчанию latin1 (а данные в таблицах DEFAULT CHARSET=cp1251), затем открываем наш дамп при помощи текстового редактора (у меня EditPlus) конвертируем в utf8 (после конвертации руские буквы не читаются), затем идем на наш хостинг создаем БД (без таблиц), выбираем Опции (или Операции) в менюшке phpMyAdmin, там ставим кодировку сопоставления нашей БД (utf8 вместо latin1), далее загружаем дамп на сервер к кодировке файла utf8 , получаем БД в кодировке таблиц utf8 а сами записи в таблицах (внутри phpMyAdmin в cp1251), а при соединении с БД в строке соединения указываем кодировку cp1251.
Отредактированно kisslii (09.01.2014 14:32:27)
Неактивен
Ну, судя по тому, что вы сделали неправильно, статья не очень хорошая
Неактивен
vasya, почему вывод о неправильности? Вроде бы описан первый вариант из статьи по ссылке - он вполне корректный. Исправляется дамп так, чтобы он был в utf8 и в нем была указана кодировка utf8. При подключении SET NAMES cp1251 и данные для сайта будут в cp1251
Неактивен
Я вот про это
kisslii написал:
получаем БД в кодировке таблиц utf8 а сами записи в таблицах (внутри phpMyAdmin в cp1251), а при соединении с БД в строке соединения указываем кодировку cp1251.
Но тут действительно скорее дело в том, что пишу одно, делаю другое, но делаю правильно.
Неактивен
Да изложено не совсем точно тогда если у меня таблицы в базе в UTF8, то почему я через phpMyAdmin вижу русский текст, это потому что данные в таблицах DEFAULT CHARSET=cp1251 или это зависит от типа соединения с phpMyAdmin с MySQL?
Неактивен
Сервер на лету преобразует данные в нужную вам кодировку.
Например, ваша программа говорит set names cp1251; это значит, что она будет передавать данные в cp1251 и получать от сервера их желает в этой же кодировке. Если данные хранятся правильно, то их преобразование пройдет без ошибок. (см раздел "проблема на пальцах" из статьи)
Неактивен