Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Косяки с кодировкой 
:(
    Опции темы
мухр
Дата 21.1.2008, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 11.8.2005

Репутация: нет
Всего: нет



Использую ORM Doctrine, та в свою очередь - расширение PDO. Пытаюсь поместить запись в БД, ипользуя Doctrine_Record::save() метод, встаёт как-то криво - мне даже кажатся, что в дважды юникод-закодированном виде. Когда получаю назад, некоторые символы выглядят следующим образом:
�?еверное им�? пользовател�? или пароль
До�?туп �? вашего IP запрещён

Сравнение текстовых ячеек - utf8_general_ci. Тип таблицы - InnoDB, но с другими типами такая же ерунда. Когда BLOB использую, то всё нормально, а с текстовым типом вот такая проблема.

Это сообщение отредактировал(а) мухр - 21.1.2008, 13:27
PM WWW   Вверх
GeneralElectric
Дата 21.1.2008, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: нет
Всего: 16



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

Если тебе конкретный ответ, где править, то тут я ничего не скажу.
А если как искать ошибку, то очевидные вещи: проверить, какая кодировка при соединении, проверить, в каком виде данные лежат в базе, проверить, какая кодировка соединения, когда получаешь данные
судя по тому, что в с блобом все нормально, то как-то неверно перекодирует база. может быть, там где-то UC2 стоит?
PM MAIL   Вверх
мухр
Дата 22.1.2008, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 11.8.2005

Репутация: нет
Всего: нет



Обычное указание "SET NAMES" решило проблему. В Доктрине это делается через Doctrine_Manager::setCharset().
PM WWW   Вверх
Romiz
Дата 9.7.2008, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 13.8.2006

Репутация: нет
Всего: нет



Hебольшое уточнение, это делается через 
Код

Doctrine_Connection::setCharset();


PM MAIL YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Extensions | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.