Переход на Юникод

fire-one

Новичок
Переход на Юникод

Я потерялся

Появилась необходимость поменять кодировку всего сайта с Win на UTF -8
Все файлы сохранил с кодировкой УТФ, но теперт в браузере вообще ничего не отображается

phpMyAdmin показывает что все данные были и до этого UTF

подскажите плиз где дальше смотреть ?

-~{}~ 21.01.08 14:34:

использую СМАРТИ
может из-за него что-то ?
 

Фанат

oncle terrible
Команда форума
phpMyAdmin показывает что все данные были и до этого UTF
где он это показывает?
а в какой кодировке они на самом деле?
а в какой кодировке ты их получаешь из базы?

если в браузере ничего не отображается - значит происходит ошибка. ошибку надо посмотреть. самому.
 

fire-one

Новичок
MySQL-кодировка: UTF-8 Unicode (utf8)
Сопоставление соединения с MySQL: utf8_general_ci

Теперь когда открываю любую таблицу:
Сравнение utf8_general_ci
и вр всех текстовых полях то же самое


А данные независимо от этого сравнения могут быть в win ?
Стоит ли сохранить дамп БД как UTF и потом его добавить заново ?
 

Фанат

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

fire-one

Новичок
а подскажите как проверить настоящую кодировку и ошибку ?

-~{}~ 21.01.08 14:52:

браузер показывает кодировку phpMyAdmin как win

-~{}~ 21.01.08 14:55:

ошибся... все таки в Админе юникод
 

Фанат

oncle terrible
Команда форума
ошибку - http://phpfaq.ru/debug
кодировку... хороший вопрос. я бы сделал дамп через консоль.
а другие способы не приходят в голову.
разве что, сделать запрос SET NAMES utf8 и посмотреть, нормально ли придут данные.
 

Gas

может по одной?
Ну вообще-то если задать set names utf-8, а данные в таблицах windows-1251, то сервер автоматически будет конвертитировать в кодировку клиента.

я бы сделал дамп через консоль
+1
что касается конвертирования кодировок, то дамп на всякий случай стоит делать всегда. В нём реальную кодировку посмотреть и можно. Чтоб сконвертить данные в таблице обычно юзаю: ALTER TABLE `tbl` CONVERT TO CHARACTER SET `charset_name`.

Ничего нового, чего нет в мане не написал, просто личный опыт.
 

Фанат

oncle terrible
Команда форума
товарищ говорил, что кодировка таблиц - UTF-8
отсюда и рекомендация SET NAMES utf8
 

fire-one

Новичок
разобрался с частью проблемы, спасибо.

Действительно, не смотря на все кодировки в phpMyAdmin, дынные в БД хранятся как win1251.
Какой способ перевести в юникод наиболее безболезненный?
Как я говорил: сохранить дамп как юникод и из него восстановить БД ?
 

Фанат

oncle terrible
Команда форума
ты не можешь сохранить дамп, как юникод.
прочти вот это: http://phpfaq.ru/charset
а потом задай вопросы, если ещё останутся.
вопрос смены фактической кодировки данных там не рассмотрен, но если понять, что там написано, то легко разобраться самому.
дынные в БД хранятся как win1251.
кстати, как ты это узнал?
 

fire-one

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

но уже все ясно, спасибо большое за помощь!
SET NAMES помог, но осталось чувство что кодировка меняется искусственно и при последующей записи различных данных в БД могут возникнут проблемы. или просто будет неразбериха потом полная с кодировкаи.
так что буду стараться сделать все-таки полный Юникод в БД
 

Фанат

oncle terrible
Команда форума
что тебе ясно? в какой кодировке данные? в какой кодировке таблицы? работает ли сайт? из-за чего он не работал?
 

fire-one

Новичок
Сайт в Юникоде
Данные в БД в win 1251 , не смотря на то что выставлено UTF8
С помощью SET NAMES UTF8 в браузере все отображается правильно как UTF

Сайт не работал из-за фатальной ошибки, которая не относилась к кодировке
 

Фанат

oncle terrible
Команда форума
если данные в БД в win 1251, а выставлено UTF8, то С помощью SET NAMES UTF8 в браузере все будет отображаться, как 1251.

об этом раза три написано по ссылке, которую я дал
 
Сверху