Вопрос по записи русского текста в базу

6 views
Skip to first unread message

Bio C

unread,
Apr 19, 2008, 1:56:05 PM4/19/08
to СodeIgniter-ru
Добрый день!
Ситуация такая: при записи русской информации в базу данных (MySQL,
естественно) латинские буквы отображаются нормально, а русский текст в
такой форме: Кирилл я понимаю, что
это происходит где-то на уровне обработки текста в CI только где, не
могу понять, может кто в курсе?
А то слишком длинные получаются заголовки, не говоря уже о самих
текстах.
Заранее благодарен.

Svolochuga

unread,
Apr 19, 2008, 5:13:52 PM4/19/08
to СodeIgniter-ru
> Ситуация такая: при записи русской информации в базу данных (MySQL,
> естественно) латинские буквы отображаются нормально, а русский текст в
> такой форме: Кирилл я понимаю, что
> это происходит где-то на уровне обработки текста в CI только где, не
> могу понять, может кто в курсе?
Проверь кодировку базы, кодировку таблицы и поля. Если все в UTF-8 но
проблема все еще есть, посылай "SET NAMES utf8" перед записью в базу.

Bio C

unread,
Apr 20, 2008, 5:31:27 AM4/20/08
to СodeIgniter-ru
У меня кодировка cp1251 (как в базе, так и на сайте). Стоит на utf-8
все менять?
(set names прописывается в database конфиге)

Bio C

unread,
Apr 20, 2008, 6:53:19 AM4/20/08
to СodeIgniter-ru
> (set names прописывается в database конфиге)
на счет этого ошибся

Svolochuga

unread,
Apr 20, 2008, 8:52:30 AM4/20/08
to СodeIgniter-ru
> У меня кодировка cp1251 (как в базе, так и на сайте). Стоит на utf-8
> все менять?
Неа, надо просто все к единому знаменателю привести. Проверяй - гдето
не та кодировка стоит.
Попробуй перед записью написать "SET NAMES cp1251"

Dan

unread,
Apr 20, 2008, 8:57:25 AM4/20/08
to СodeIgniter-ru
а можно кусок кода который записывает в базу?

Bio C

unread,
Apr 23, 2008, 8:35:08 AM4/23/08
to СodeIgniter-ru
$artist_data['artist_link'] = url_title($_POST['artist_name']);
$artist_data['artist_name'] = $_POST['artist_name'];
$artist_data['artist_text'] = $_POST['artist_text'];
$artist_data['artist_pic'] = $data['upload_data']['file_name'];
$artist_data['artist_pic_alt'] = $_POST['artist_name'];

$this->db->insert('artist', $artist_data);

Все просто, в принципе.
(сайт связан с музыкой, таблица содержит в себе список музыкантов и
ссылки на картинки)

Crazy LionHeart

unread,
Apr 23, 2008, 8:48:17 AM4/23/08
to СodeIgniter-ru
омг, прям так сразу из POST в базу?

Если включены active record то $this->db->insert(поле, данные); если
нет, то $this->db->query('Insert into table (поля) values(данные)')

On 23 апр, 16:35, Bio C <titov.m...@gmail.com> wrote:
> ¤artist_data['artist_link'] = url_title(¤_POST['artist_name']);
> ¤artist_data['artist_name'] = ¤_POST['artist_name'];
> ¤artist_data['artist_text'] = ¤_POST['artist_text'];
> ¤artist_data['artist_pic'] = ¤data['upload_data']['file_name'];
> ¤artist_data['artist_pic_alt'] = ¤_POST['artist_name'];
>
> ¤this->db->insert('artist', ¤artist_data);
>

Mityok

unread,
Apr 23, 2008, 6:04:34 PM4/23/08
to СodeIgniter-ru
Вот здесь:
http://www.codeigniter.org.ru/content/%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0-%D1%81-%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9-utf-8-codeigniter-15
детально описывал проблему с кодировками.
Вместо utf-8 вполне можно использовать cp1251, если это критично.

Bio C

unread,
May 13, 2008, 4:19:29 PM5/13/08
to СodeIgniter-ru
Спасибо за советы, но ни один, к сожалению не помог.
На сайте то все отлично отображается (и отображалось изначально).
Просто в базе он хранится в формате html кода (&#1050;&#1080;...) и
работать с ним не возможно (не говоря уже о том, что занимает он в 5
раз больше места).
Вопрос: у кого-нибудь получалось вносить в базу русский текст, чтобы
его CI не конвертировал в html код?
Reply all
Reply to author
Forward
0 new messages