Diakritika

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
bfx
Člen | 12
+
0
-

Mam takyto problem:
Notice: iconv_strlen() [function.iconv-strlen]: Detected an incomplete multibyte character in input string in String.php on line 169
Sk��ka

Kodovanie je utf8_slovak_ci.

Ondřej Mirtes
Člen | 1536
+
0
-

Seš si jistý? AFAIK utf8_slovak_ci je porovnávání, mrkni na kódování dané tabulky a databáze, pak mrkni, jestli v dibi máš nastavení charset = utf8, případně po připojení k DB na ní pošli příkaz SET NAMES utf8. PHP skripty v UTF-8 máš?

bfx
Člen | 12
+
0
-

takto:

ALTER DATABASE `db` DEFAULT CHARACTER SET utf8 COLLATE utf8_slovak_ci

CREATE TABLE IF NOT EXISTS `test` (
  `ID` bigint(20) NOT NULL,
  `text` varchar(50) collate utf8_slovak_ci default NULL,
  UNIQUE KEY `ID` (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_slovak_ci;


INSERT INTO `test` VALUES(1, 'skuska');
INSERT INTO `test` VALUES(2, 'Skúška');

tak myslim ze je v utf8, kde sa v dibi nastavuje charset = utf8?

Ok poriesene… pomohlo $this->db->query(‚SET NAMES utf8‘);

Editoval bfx (5. 5. 2009 9:11)

_Martin_
Generous Backer | 679
+
0
-

Jednodušší je nastavit to přímo při připojení. Jinak dotazy na dibi je lepší směřovat do dibi fóra.

bfx
Člen | 12
+
0
-

_Martin_ napsal(a):

Jednodušší je nastavit to přímo při připojení. Jinak dotazy na dibi je lepší směřovat do dibi fóra.

Samozrejme ze to mam hned po pripojeni:)

_Martin_
Generous Backer | 679
+
0
-

Nevím, zda si rozumíme, měl jsem na mysli spíše tohle „při připojení“:

dibi::connect(array(
    'driver'   => 'mysql',
    'host'     => 'localhost',
    'username' => 'root',
    'password' => '***',
    'database' => 'test',
    'charset'  => 'utf8', // <---
));