1 (изменено: beowulf, 2008-03-02 12:03:47)

Тема: Извините за надоевший вопрос, но опять кодировка.. )=

Рабочая станция:

phpMyAdmin - 2.8.2.1
MySQL client version: 5.0.45
MySQL-кодировка:  UTF-8 Unicode (utf8)
Сопоставление соединения с MySQL: utf8_general_ci

БД: pf
Сравнение: utf8_general_ci


Хостинг:

phpMyAdmin - 2.10.1
Версия MySQL-клиента: 5.0.27
MySQL-кодировка:  UTF-8 Unicode (utf8)
Сопоставление соединения с MySQL: utf8_general_ci
БД: pf
Сравнение: utf8_general_ci

Добавление в БД происходит со страниц с кодировкой utf-8.
При просмотре таблиц через PMA вместо русских символов - зюки вида: ???????°?????‹, ????????????, ?????????
На страницах тем временем все отлично.

Делаю экспорт. В файл вместо русского такие же зюки.

Заливаю на хостинг. Выбираю кодировку файла - utf8.
При просмотре в PMA зюки. Но они же на страницах. В чем косяк?

SET NAMES utf8 на сайте ничего не дает

С уважением, Максим aka Beowulf.

2

Re: Извините за надоевший вопрос, но опять кодировка.. )=

Выполните данный запрос на обоих серверах и покажите результат.
SHOW VARIABLES LIKE 'char%';

Причина появления указанных вами крякозябов: символы в юникоде ложатся в таблицы, как latin1, то есть кодировка соединения именно latin1.
Чтобы избавиться от крякозябов и однозначно указать кодировку соединения, запрос SET NAMES utf8; надо прописать в скрипт, выполняющийся на локальном сервере.

Но уже имеющиеся данные это не спасет, их надо перекодировать, либо ввести заново, после коррекции локального скрипта.

Кстати, в скрипте на удаленном сервере SET NAMES тоже не помешает.

Еще один момент, - под root скрипты не подключать! Создайте отдельного пользователя наделив его только необходимыми правами.

3 (изменено: beowulf, 2008-03-02 14:39:40)

Re: Извините за надоевший вопрос, но опять кодировка.. )=

| character_set_client      latin1                     
| character_set_connection  latin1               
| character_set_database    utf8                     
| character_set_filesystem  binary                   
| character_set_results     latin1                     
| character_set_server      latin1                     
| character_set_system     utf8                     
| character_sets_dir       /usr/share/mysql/charsets/


угу, кажется понял (:

если я на локальной машине прописал при подключении из скрипта к БД SET NAMES utf8 это спасет меня при перенесении данных? (:

4

Re: Извините за надоевший вопрос, но опять кодировка.. )=

beowulf сказал:

если я на локальной машине прописал при подключении из скрипта к БД SET NAMES utf8 это спасет меня при перенесении данных?

После добавления данного запроса, все последующие записи должны идти в utf8, что вы должны заметить, так как в phpMyAdmin вместо крякозябов появится кирилица, но старые данные (крякозябы) это не изменит. Чтобы вернуть уже введенные данные, которые в БД отображаются крякозябами, их надо перекодировать (сложный процесс, требует отдельного рассмотрения), либо, как я уже говорил, можно вбить все данные заново (если это возможно, конечно).

5

Re: Извините за надоевший вопрос, но опять кодировка.. )=

Да, данных еще не очень много было (:

Спасибо большое.