Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Invalid byte sequence...
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
czachor
Witam,
podczas wykonywania zapytania
  1. SELECT *
  2. FROM articles WHERE LOWER(keywords) LIKE LOWER('%zastępcze%') ORDER BY id DESC

dostaję taki błąd:
Cytat
ERROR:  invalid byte sequence for encoding "UNICODE": 0xe49970


Tabela wygląda tak:
  1. CREATE TABLE articles (
  2. article_id serial NOT NULL,
  3. id integer NOT NULL,
  4. filename character varying(255) NOT NULL,
  5. author character varying(255) NOT NULL,
  6. title text NOT NULL,
  7. keywords text NOT NULL,
  8. active BOOLEAN DEFAULT true NOT NULL,
  9. section_id smallint
  10. );


Przy zapytaniach bez PL liter nie ma problemów, co dziwniejsze przy niektórych zapytaniach z PL (np. 'głębia') wszystko jest OK.

Tabela w bazie jest w Unicode, strona również. Postgres 8.0.4, php 5.1.1, używam PEAR:biggrin.gifB.

Nie mam pojęcia, czego się przyczepić... Z góry dzięi za wszelką pomoc!
SongoQ
z pgadmina jest ten sam blad?
czachor
Niestety nie mam dostępu do pgAdmina... phpPgAdmin only (tu zresztą też jest ten błąd).

--------UPDATE
Nie udało mi się znaleźć jakiegoś sensownego rozwiązania problemu... Załatwiłem to zmieniając typ kolumny keywords z text na bytea i przenosząc funkcję LOWER z poziomu db do php (strtolower())... Działa...

Jeśli ktoś wpadnie na coś prostszego, proszę o info smile.gif
pozdr.
ActivePlayer
Cytat
Przy zapytaniach bez PL liter nie ma problemów, co dziwniejsze przy niektórych zapytaniach z PL (np. 'głębia') wszystko jest OK.

W utfie polskie znaki są 2 bajtowe... w jakim kodowaniu wysylasz query ? to chyba tez ma znaczenie jakies nie ?
SongoQ
Dziwne, sprawdzalem i dziala ok. Zrzuc dopasowania rekordow ktore masz w WHERE w postaci INSERT zobaczymy czy beda jakies bledy.
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.