Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Nie działają polskie znaki
Forum PHP.pl > Forum > PHP > Frameworki
jimmy_lee
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ć
Whisller
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.
jimmy_lee
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']
Whisller
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ś.
jimmy_lee
Dzięki za pomoc, pomogło ponowne ręczne ustawienie utf-8 na każdej tablicy w bazie...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.