непонятки с кодировкой

Статус
В этой теме нельзя размещать новые ответы.

no_santa

Снегур
непонятки с кодировкой

При переезде с хостинга на хостинг возникла непонятка с кодировкой.

Сайт полностью на UTF-8, изнутри и снаружи.
База в UTF-8, все таблицы и все столбцы корректно в UTF-8 - проверил.

Почему-то на пути из браузера в базу искажается заглавная буква И. Также не работает функция сравнения, когда там присутствует заглавная "И":

PHP:
A Database Error Occurred

Error Number: 1267

Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (cp1251_general_ci,COERCIBLE) for operation '='

SELECT `mail`,`fio` FROM `users` WHERE `mail`='[email protected]' OR `fio`='Иванов Игорь Иванович';
Почему 1251? Какой 1251? Где может быть 1251?
 

dimagolov

Новичок
no_santa, у таблиц есть не только кодировка, но и collations, то есть сортировка. Вот она у тебя где-то 1251. COERCIBLE означает "заданный", а IMPLICIT "подразумеваемый", то есть 1251 все же в базе.

проще всего сделать дамп структуры и сделать grep 1251
 

no_santa

Снегур
Это динамические данные, которые по ходу работы с прогой кладутся в базу, изменяются и достаются из нее. Везде, где только можно написал UTF-8 или utf8_unicode_ci.

А может быть такая фигня, что кодировка по умолчанию задана в настройках MySQL хостера, но недоступна клиенту?
 

vovanium

Новичок
dimagolov
у таблиц есть не только кодировка, но и collations, то есть сортировка
Более того кодировка может быть указана для конкретного столбца. Если была таблица в cp1251, а потом тупо ALTER'ом изменили кодировку для таблицы на UTF8, то у столбцов останется кодировка cp1251.
 

no_santa

Снегур
виртуалка, SSH нету

-~{}~ 27.09.09 22:55:

можно подобную процедуру сделать с помощью phpmyadmin?

-~{}~ 27.09.09 22:55:

во, идея! Напишу-ка я в поддержку...
 

vovanium

Новичок
Вот выполни запрос
[sql]SELECT TABLE_NAME, COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME FROM `information_schema`.`COLUMNS` WHERE TABLE_SCHEMA = 'НАЗВАНИЕ БАЗЫ ДАННЫХ' AND CHARACTER_SET_NAME IS NOT NULL;[/sql]
Выведет кодировку всех текстовых столбцов
 

no_santa

Снегур
В базе все таблицы, все столбцы и сама база - кодировка выставлена верно.
Буквально только-что подтвердилась гипотеза о дефолтных настройках сервера - http://pic.rapidshare.ru/1188789

дозвонился в поддержку, обещали исправить.

Собственно, не могу сказать что проблема решена, наверное тему рано закрывать.

Ой, беда с этими хостингами.... Кстати, братцы, дайте ссылку на тему, где перечислены хорошие хостинги?
 

Фанат

oncle terrible
Команда форума
дефолтные настройки сервера не значат вообще ничего.
хуже нет, когда ламеры заставляют поддержку исправлять собственные косяки
 

no_santa

Снегур
***** ой, самый умный пришел! Сейчас опять всех посылать будет... :)

Сам ламер! Хоть-бы ссылку посмотрел, проклятый НАТОвец...

Кстати, в поддержке сказали, что это реальный косяк, т.к. большинство клиентов на этом-же сервере имеют сайты в 1251, поэтому под них конфа сделана. Меня сейчас тупо переносят на другой сервер.

Еще ссылка, специально для брумфильдских пыхарей - http://pic.rapidshare.ru/1188857
 

Фанат

oncle terrible
Команда форума
Рот разевать будешь, если сможешь реальную причину назвать, а не "пацаны сказали реальный косяк".
а сейчас притухни.
 

vovanium

Новичок
no_santa
Ты запрос хоть выполнил который я давал?
А то что ты выделил, всего ли означает кодировку по умолчанию. Т.е. в ней создаются таблицы если кодировка не указана.
 

no_santa

Снегур
Вопрос решен - базу перенесли на другой сервер, после чего все глюки пропали. На том сервере, куда попал дефолтно, все в 1251 (предполагаю потому, чтобы не писать set names).

vovanium
Да грепнули еще вчера, нет ни 1251, ни 1252. Ими даже не пахнет. На самом деле мной все давно и четко вылизано, на этом сайте и по меньшей мере еще на 30.


фOнат
пачем семячки в брукфилдя-то? С рускем язэком тама у всех так хярова, как у тябя? Довай хоть матярица па чилавеческе научу? За баксы-то зашибись как научу...
 

Фанат

oncle terrible
Команда форума
я че-то не понял, когда этот ламер успел расквакаться.
раньше вроде тихо ходил, знал свое место.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху