MySQL - правильные настройки.

7 views
Skip to first unread message

Сэма

unread,
Jul 10, 2006, 9:17:19 AM7/10/06
to cake-php-ru
Уважаемые коллеги.
Вот уже который раз и с которым framework'ом
наступаю на грабли по корректному
отображению кирилицы.
Вот и cakePHP мне показал дулю, а именно:
1. если сам он показывает введенные
данные правильно, то ни phpMyAdmin, ни
другие внешние утилиты записи
показывают в каких-то хабразябрах.
2. Не все и не всегда правильно
сортирует по алфавиту (русскому)
3. не любит букву "ш" - вместо нее
подставляет что-то невразумительное.

При создании таблиц использовал
utf8
utf8-general-ci

Буду признателен за любые рецепты
решения данного вопроса.

Спасибо, за внимание.

vla...@gmail.com

unread,
Jul 10, 2006, 9:25:53 AM7/10/06
to cake-php-ru
Каталог /cake/libs/model/dbo

Файл dbo_mysql.php

Преобразовать конструктор к виду:

function __construct ($config)
{
parent::__construct($config);
$this->connect();
$this->_execute('SET NAMES UTF8');
return ;
}

Вношу в FAQ

Jtraub

unread,
Jul 10, 2006, 7:20:50 PM7/10/06
to cake-php-ru

Я крайне против внесения таких вещей в
FAQ. Это же deep core hacking!
Вносить только то, как описано здесь:
http://rossoft.wordpress.com/2006/02/11/mysql-and-utf-8/

Сэма

unread,
Jul 11, 2006, 3:29:48 AM7/11/06
to cake-php-ru
Большое спасибо :) Полегчало

Сэма

unread,
Jul 11, 2006, 3:32:01 AM7/11/06
to cake-php-ru
А в траккер занести можно? У меня
правильнописание английское хромает.
Проблемма не только в русском
возникает, как я понял. Если уж давить
utf8, то хотелось бы это иметь именно на
уровне ядра, а не навешивать "лишние"
заплатки.

Jtraub

unread,
Jul 11, 2006, 3:58:54 AM7/11/06
to cake-php-ru

> А в траккер занести можно?
Давно уже там.

https://trac.cakephp.org/ticket/759

> возникает, как я понял. Если уж давить
> utf8, то хотелось бы это иметь именно на
> уровне ядра, а не навешивать "лишние"
> заплатки.

В грядущей версии 1.2.x.x такое есть.
Изначально. Если не очень хочется
ждать - то уж лучше накатить на текущую
версию кейка патч из
https://trac.cakephp.org/ticket/759

Сейчас гляну в репозиторий...

Ага.. А еще лучше - сделайте checkout бранча
1.2.x.x из репозитория и выдерните
тамошний dbo_mysql

там помимо патча присутствуют еще
функции
/**
* Sets the database encoding
*
* @param string $enc Database encoding
* @return void
*/
function setEncoding($enc) {
return $this->_execute('SET NAMES ' . $enc) != false;
}
/**
* Gets the database encoding
*
* @return string The database encoding
*/
function getEncoding() {
return mysql_client_encoding($this->connection);
}
/**
Ну и конфиг поменять нужно будет,
указать кодировочку.

Reply all
Reply to author
Forward
0 new messages