Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] Nie działają polskie znaki
jimmy_lee
post 11.03.2009, 19:27:12
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.03.2009

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


Witam,
właśnie zorientowałem się, że zrobiłem całą polską stronę w Symfony i nie zauważyłem, że w formularzach nie można wpisywać polskich znaków. Kiedy wpisuję jakiś, przy walidacji formularza pojawia się błąd:

Server Internal 500: Propel Exception:
General error: 1366 Incorrect string value: '\xC5\x84\x0D\x0A'
Na czym polega problem? Kodowanie w pliku database.yml jest ustawione na utf-8...
To pewnie głupie, ale nie mam pojęcia jak to poprawić

Ten post edytował jimmy_lee 11.03.2009, 19:27:35
Go to the top of the page
+Quote Post
Whisller
post 11.03.2009, 19:39:56
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 5
Dołączył: 29.03.2006
Skąd: Poznań

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


Jest to przy walidacji czy już przy samym dodawaniu rekordu do bazy? Sprawdz czy na pewno masz wszędzie ustawione UTF-8.
Czy baza ma takie kodowanie, czy w settings.yml masz charset ustawione z dobrym kodowaniem? Oraz przed samym dodaniem rekordu do bazy sprawdz jego kodowanie używając funkcji mb_detect_encoding.


--------------------
Blog | Strona www | wicia.pl
Go to the top of the page
+Quote Post
jimmy_lee
post 11.03.2009, 19:58:50
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.03.2009

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


Wygląda na to, że przy dodawaniu do bazy, bo tekst przy tym wyjątku to:
  1. } catch (Exception $e) {
  2. Propel::log($e->getMessage(), Propel::LOG_ERR);
  3. throw new PropelException("Unable to execute INSERT statement.", $e);
  4. }
W settings.yml mam ustawiony utf-8...
W bazie nawet próbowałem ustawić je ręcznie, na wszelki wypadek... też jest utf-8...
mb_detect_encoding zwraca utf-8...

PS. Gdzieśtam na stronie mam prostą wyszukiwarkę, która używa CRITERIA::LIKE. Kiedy w niej wpiszę znak 'ń', to pojawia się coś takiego:
[wrapped: SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like']


Ten post edytował jimmy_lee 11.03.2009, 19:59:10
Go to the top of the page
+Quote Post
Whisller
post 11.03.2009, 20:05:04
Post #4





Grupa: Zarejestrowani
Postów: 77
Pomógł: 5
Dołączył: 29.03.2006
Skąd: Poznań

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


Sprawdź w webdebugerze czy Propel na pewno ustawia UTF-8 (SET NAMES 'utf8'), jeśli tak to na 99% masz złe kodowanie w bazie. Przynajmniej tak mi się wydaje z tego co opisałeś.

Ten post edytował Whisller 11.03.2009, 20:05:48


--------------------
Blog | Strona www | wicia.pl
Go to the top of the page
+Quote Post
jimmy_lee
post 11.03.2009, 20:25:39
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.03.2009

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


Dzięki za pomoc, pomogło ponowne ręczne ustawienie utf-8 na każdej tablicy w bazie...
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: 12.06.2025 - 21:28