Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] Krzaki w bazie zamiast polskich znaków, Jednak na stronie wyświetlają się poprawnie.
Sajrox
post 30.11.2009, 09:47:57
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

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


Witam,

Mam dziwny problem. Gdy zapisuje przez formularz jakieś dane to w pazie zamiast polskich znaków otrzymuje: ążęźćńłó

Jednak po zapisaniu danych na stronie te krzaki wyświetlają się poprawnie jako polskie znaki. Tylko w bazie danych jest taki bałagan.

Połaczenie z bazą realizuję w pliku .ini
  1. ;Database
  2. resources.db.adapter = "pdo_mysql"
  3. resources.db.params.host = "localhost"
  4. resources.db.params.username = "root"
  5. resources.db.params.password = ""
  6. resources.db.params.dbname = "baza1"
  7. resources.db.params.charset = "UTF8"
  8. resources.db.params.driver_options.1002 = "SET NAMES UTF8"
  9. resources.db.isDefaultTableAdapter = true
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
darko
post 30.11.2009, 10:26:50
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


To w czym problem questionmark.gif Znaki muszą zostać odpowiednio zakodowane w bazie, jeśli wyświetlają się poprawnie na stronach, to ok, nie przejmuj się tym, wszystko jest w jak najlepszym porządku.


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Sajrox
post 30.11.2009, 12:20:50
Post #3





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

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


Hehe, no tak tylko że skoro kodowanie bazy mam w UTF-8, połaczenie z bazą nawiązuje z kodowaniem UTF-8, to oczekiwałbym aby zapisywane dane były także w UTF-8.
Byłbym spokoniejszy gdybym dane w bazie posiadały polskie znaki smile.gif
Dopiero po aktualizacji ZF do najnowszej wersji oraz przebudowa Bootstrapa oraz szkieletu aplikacji, zaobserwowałem ten nietypowy problem :/
Go to the top of the page
+Quote Post
darko
post 30.11.2009, 12:23:35
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Ja tu nie widzę żadnego problemu, po prostu tak jest i tyle. U mnie też w bazie wyświetlają się krzaczki i jakieś dziwactwa, ale nie zwracam na to uwagi, poza tym na stronach wszystko jest ok. Działa, to działa, widocznie tak ma być. Po co szukać sobie problemu na siłę, w dodatku tam, gdzie go nie ma questionmark.gif Wewnętrzne (i poprawne!) kodowanie danych w bazie tak właśnie wygląda, Zend Framework nie ma z tym nic wspólnego.

Ten post edytował darko 30.11.2009, 12:26:01


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Sajrox
post 30.11.2009, 12:33:33
Post #5





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

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


Przekonałeś mnie winksmiley.jpg
Go to the top of the page
+Quote Post
pc3t
post 12.01.2010, 10:17:24
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 1
Dołączył: 11.09.2009

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


Teoretycznie też na to nie zwracałem uwagi, ale pojawił się problem gdy musiałem posortować te krzaczki - mysql kompletnie sobie z tym nie radzi.
Wszystkie polskie litery, które w tym magicznym zapisie zaczynają się od ? są na początku.

To samo tyczy się innych funkcji mysql: lower itp

Ktoś wie jak to ugryźć?

///edit
poradziłem sobie, jakoś nie pomyślałem o tym, że Zend nie ustawia automatycznie
SET NAMES utf8 zaraz po połączeniu
teraz wszystko się poprawnie dodaje.
Czyli można zrobić tak:
$db = Zend_Db::factory('Pdo_Mysql', array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'baza',
'charset' => 'utf8'
));

albo w configu dopisać:
resources.db.params.charset = "utf8"

Ten post edytował pc3t 12.01.2010, 10:46:43
Go to the top of the page
+Quote Post
luki100011
post 15.01.2010, 20:22:25
Post #7





Grupa: Zarejestrowani
Postów: 243
Pomógł: 20
Dołączył: 20.04.2004
Skąd: Wielkopolska

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


Kiedyś tez tak miałem i problem zrobił się przy przenoszeniu bazy na inny serwer znaczki polskie diabli wzieli a konwerter nie potrafił tych dziwnych znaczków zamienić na polskie liter


--------------------
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: 14.08.2025 - 06:52