Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [pdo / zend framework] Kodowanie polskich znaków, bez pdo jest ok z pdo już nie...
athabus
post 9.12.2006, 20:15:04
Post #1





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam, właśnie próbuję zgłębić ZendFramework i mam mały problem z kodowaniem polskich znaków.

Gdy odczytuję z bazy informacje normalnie poprzez mysqli->query wtedy polskie znaki działają ok. Oczywiście wcześniej ustalam kodowanie znaków używając set names uft8.

W przypadku gdy próbuję to samo zrobić za pomocą ZF (korzysta on z PDO) już polskich znaków nie ma. Mój kod to np:
  1. <?php
  2. $db = Zend_Db::factory('PDO_MYSQL', $params);
  3. $db->query('Set names utf8'); //bez tego są znaki zapytania z tym "utfowe" krzaki
  4. $result=$db->query('select * from klienci');
  5. $rows=$result->fetchAll();
  6. Zend::dump($rows);
  7. ?>


Czy należy jeszcze coś ustawić aby pojawiły się polskie znaczki?

(dodam, że sama strona korzysta również z kodowania utf8, a w bazie mam ustawione utf-8-polish-ci)

//edit
Wina leży gdzie indziej. Krzaczki pojawiają się tylko przy wywołaniu Zend::dump . Gdy wyświetlam atrybut normalnie to wszystko jest ok... dziwne

Ten post edytował athabus 9.12.2006, 20:23:10
Go to the top of the page
+Quote Post
ARJ
post 9.12.2006, 20:23:45
Post #2





Grupa: Zarejestrowani
Postów: 453
Pomógł: 22
Dołączył: 20.09.2004
Skąd: Kraków - NH -

Ostrzeżenie: (0%)
-----


przed zapytaniem musisz wywołać:
  1. <?php
  2. $db->query('SET NAMES utf8');
  3. $db->query('SET CHARACTER SET utf8');
  4. ?>


--------------------
Warsztat: Windows 7 Pro 64bit | Apache 2.2 | PHP 5.2 | MySQL 5.0 | PHPmyadmin 2.6.4
Go to the top of the page
+Quote Post
cyphelf
post 9.12.2006, 21:10:24
Post #3





Grupa: Zarejestrowani
Postów: 68
Pomógł: 1
Dołączył: 27.03.2006

Ostrzeżenie: (0%)
-----


Metoda Zend::dump() używa funkcji htmlentities() bez trzeciego parametru oznaczającego kodowanie, więc zostaje użyte domyślne kodowanie serwera czyli najczęściej iso-8859-1, co jest powodem wyświetlania krzaczków.

Niedługo prawdopodobnie będzie możliwość ustawienia domyślnego kodowania w statycznej zmiennej klasy Zend, ale póki co możesz to rozwiązać dodająć trzeci parametr w wywołaniu htmlentities() (w Twoim przypadku 'utf-8').


--------------------
lorem ipsum : polska społeczność zend framework
Go to the top of the page
+Quote Post
athabus
post 9.12.2006, 22:26:26
Post #4





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Dzięki, to chyba faktycznie jest to.
Go to the top of the page
+Quote Post
Sabistik
post 9.12.2006, 22:47:07
Post #5


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Przenoszę. Temat dotyczy strikte ZF.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 12:30