Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z wyszukiwarką, nie wyszukuje litery "ó"
Mad_John
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 8.09.2006

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


Witam

Jestem w trakcie testowania swojej wyszukiwarki i zauważyłem że nie wyszukuje ona litery ó w wyszukiwanych tekstach. Wyszukiwarka działa następująco:

- pobranie wszystkich obiektów
- zamiana dużych liter na małe
- wyszukiwanie funkcja strstr() czy jest szukany ciąg w tekście

Wyszukiwarka działa ok, wyszukuje wyrazy z ę,ą,ć,ł itd... wszystko poza literą ó. Ktoś wie o co może chodzić?

Używam kodowania utf-8
- dane zapisane w bazie mysql w utf8_general_ci
- po połączeniu z bazą danych ustawiam "SET CHARACTER SET 'latin2'" (jest to konieczne?)

Znalazłem jeszcze coś takiego:

  1. <?php
  2. echo "<pre>".print_r(iconv_get_encoding(),1)."</pre>";
  3. ?>


w efekcie pokazuje sie:

  1. Array
  2. (
  3. [input_encoding] => ISO-8859-1
  4. [output_encoding] => ISO-8859-1
  5. [internal_encoding] => ISO-8859-1
  6. )



Mam jeszcze jedno pytanie, wyszukiwarka jest oparta na zend frameworku. Praktycznie kodowanie utf-8 dopiero zaczyna dzialac przy ladowaniu templatow. Czy wrzucenie do indexu

  1. <?php
  2. header('Content-type: text/html; charset=utf-8');
  3. ?>


załatwia sprawę?

Aha na koniec jeszcze jedno, wyszukiwanie w bazie danych przez "Select.... LIKE '%ó%'" daje 0 elementów znalezionych... Zupełnie nie czaje o co tu chodzi :/

Ten post edytował Mad_John 18.06.2007, 10:38:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cicik
post
Post #2





Grupa: Zarejestrowani
Postów: 219
Pomógł: 5
Dołączył: 18.07.2006
Skąd: Piekary Śląskie

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


Hmm...
A czego używasz do wprowadzania tekstów? FCKEditora?
Nie wiem czemu ale on zamienia ó na jakieś &costam;
Wyświetla się dobrze jako ó ale to nie jest ó.

Też mam z tym problem i nie wiem jak sobie z tym poradzić.
Trzeba by pogrzebać w kodzie FCKEditora i coś wywalić.

EDIT:
Znalazłem rozwiązanie.

1. Znajdź plik fckconfig.js
2. Znajdź w nim linijkę FCKConfig.IncludeLatinEntities = true ;
3. Zmień true na false

Ten post edytował cicik 19.06.2007, 07:24:52
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 13.10.2025 - 13:02