PDA

Просмотр полной версии : Проблемы с кодировкой


GrMerlin
13.02.2010, 21:43
Использую базу данных MySQL с помощью phpMyAdmin. Используя AMFPHP получаю данные в FLEX-проект... Дык вот сама проблема состоит в том, что латиницу воспроизводит нормально, а вот кириллицу - загагулинами... В браузере AMFPHP тоже самое... Кодировка полей базы данных - utf8_unicod_ci или cp1251_general_ci (которая стоит по-умолчанию)... И в том и в том случае результат одинаковый! Вопрос: что можно сделать, чтобы нормально воспроизводилась кириллица?

ratin
13.02.2010, 23:27
Используйте utf8_general_ci, просмотрите вашу БД на предмет оставшихся в ней записей в кодировке 1251

GrMerlin
14.02.2010, 01:16
Да в том то и дело: изменю на кодировку utf8_general_ci, добавляю новую запись кирилицой и в браузере AMFPHP смотрю что получилось... Крякозяблики, как и раньше...

ratin
14.02.2010, 01:27
Проверьте, в какой кодировке таблицы и столбцы идут. MySQL позволяет делать разные части БД в разной кодировке.

BeDLiNt
14.02.2010, 09:59
Дело в том, что может у Вас и установлено, что кодировка полей в таблице - UTF-8. Но в phpMyAdmin через браузер Вы их вбиваете в Windows-1251. Должно быть установлено в phpMyAdmin Сопоставление соединения с MySQL: UTF-8.

GrMerlin
14.02.2010, 18:19
Поставил "Сопоставление соединения с MySQL: utf8_general_ci". Таблицы тоже идут в utf8_general_ci... Не помогло... Результат тот же...

DАSOLTER
15.02.2010, 10:07
AMFPHP как бы должОн поддерживать не только utf-8. Я чета както пробовал одной левой, но не получилось ((
Подсказка: $gateway->setCharsetHandler(«utf8_decode», «ISO-8859-1», «ISO-8859-1») в gateway.php...

SDA_Grails
15.02.2010, 11:13
Для создания БД SQlLite используй SQLite Expert Professional 2 и не будет у тебя никаких проблем с кодировкой.

DАSOLTER
15.02.2010, 12:31
Для создания БД SQlLite используй SQLite Expert Professional 2 и не будет у тебя никаких проблем с кодировкой.

Используйте консоль (с)...все эти пыхыпымайодмины от лукавого ))

GrMerlin
15.02.2010, 16:44
DАSOLTER, в файле gateway.php уже установлено по-умолчанию $gateway->setCharsetHandler(«utf8_decode», «ISO-8859-1», «ISO-8859-1»). И что-то я не понял что Вы писали про консоль...

Нашел подобную тему: http://www.flasher.ru/forum/showthread.php?t=79220. Вот только не понял решение этой проблемы... Что-то про "коряво настроенный шлюз по-умолчанию"... Может ли кто-то объяснить!!?

DАSOLTER
15.02.2010, 17:27
Вот именно: "уже"? ISO-8859-1 это же не для кириллицы....
Про консоль...не используя phpMyAdmin.

GrMerlin
15.02.2010, 17:59
Если меняю на
$gateway->setCharsetHandler("utf8_decode", "utf8_decode", "utf8_decode") или $gateway->setCharsetHandler("utf8_ubicod_ci", "utf8_ubicod_ci", "utf8_ubicod_ci"), то на результат это не влияет. Т.е. кириллица нормально не отображается.

А как именно Вы предлагаете использовать консоль?

GrMerlin
13.05.2010, 09:46
Решил проблему с кодировкой! В файле $gateway изменения результатов не дали - поменял этот файл на тот, который мне скинули (по сути такой же, но работает по-другому(почему - не знаю)). После чего возникла проблема с библиотекой iconv.dll (имеется в виду на денвер)... Установил ее. В результате: с базы данных кириллица выводится нормально, а вот записывается коряво... Еще несколько часов чесал репу... В итоге: подключил еще одну библиотеку - php_mbstring.dll и перекодирую вводимую строку в php-файле $str = mb_convert_encoding($str, 'cp1251', 'utf8');
. После чего - все работает хорошо! Данные вводятся и выводятся, кириллица отображается. Доволен.