Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wyszukiwarką
Forum PHP.pl > Forum > PHP
Mad_John
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 :/
misiek172
w każdym wypadku:

SET CHARACTER SET 'latin2'

zmienia kodowanie na ta chwile na ISO, ponieważ latin2 to ISO.
Może w tym tkwi problem...
Mad_John
Bez tego efekt jest identyczny....
misiek172
no zamiast

SET CHARACTER SET 'latin2'

daj może:

SET CHARACTER SET 'utf8' // nie wiem dokładnie jak nazywa się to kodowanie w tym poleceniu

Edit:
NIe jednak tak nie wygląda to... tutaj masz w manualu MySQL cała tablice character

http://dev.mysql.com/doc/refman/4.1/en/charset-mysql.html" title="Zobacz w manualu PHP" target="_manual
cicik
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
Mad_John
faktycznie używam fckeditora... zrobiłem zmiane w konfigu fck i wszystko chodzi :] wielki dzieki za pomoc, w życiu bym się nie domyślił, że to wina fckeditora

pozdrawiam
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.