Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/MySQL] Kodowanie polskich znaków
Forum PHP.pl > Forum > Bazy danych > MySQL
sethir
Witam,

Jest taka sytuacja:

1. Posiadam bazę w formacie kodowania LATIN2
2. Posiadam tabele w formacie kodowania LATIN2
3. Stronę generuję z kodowaniem ISO-8859-2

i teraz problem:

Jak w formularzu wpisuję polskie literki to po zapisaniu w bazie mam krzaczki, to samo dotyczy odczytania tych danych z bazy i wstawienie na stronę - mam krzaczki. Jeśli zmienię stronę kodowania z ISO na UTF-8 podczas generowania strony to mam polskie znaki.

Co robię nie tak lub gdzie muszę coś ustawić aby po wklepaniu danych na formularzu w stronie kodowania ISO-8859-2 otrzymać w bazie (lub po odczytaniu danych z bazy) polskie ogonki w kodowaniu ISO-8859-2.

PS. Nie mogę zmienić kodowania na UTF-8 ponieważ w bazie przechowuje importowane duże ilości danych które są w stronie kodowej ISO-8859-2 i nie mogę zmieniać im strony kodowej bo potem idą do innego systemu gdzie też obowiązuje ISO-8859-2.

Pozdrawiam
pafka
moze samo polaczenie z baza jest na UTF ? zobacz jak bys zaraz po nawiazaniu polaczenia wyslal polecenie
  1. SET NAMES LATIN2
...
sethir
Cytat(pafka @ 12.11.2007, 13:27:16 ) *
moze samo polaczenie z baza jest na UTF ? zobacz jak bys zaraz po nawiazaniu polaczenia wyslal polecenie
  1. SET NAMES LATIN2
...


Zapomniałem dodać, iż mam ustawione zaraz po nawiązaniu połączenia (przy pomocy ADODB) SET CHARSET LATIN2 i SET NAMES LATIN2.

Hmm,ale jak ustawię:

SET CHARSET LATIN2
SET NAMES UTF8

to dane wcześniej zapisane w bazie są rozjechane (czyli krzaki), natomiast dane z formularza dobrze się zapisują do bazy i dobrze wyświetlają po odczytaniu z kodowaniem w meta ustawionym na ISO-8859-2.

Jak zmienię kodowanie w przeglądarce na UTF-8 to mam krzaki tego co wcześniej zarejestrowane i to co w ISO było już poprawnie zapisane znowu ma krzaki.

Czy to może jest, iż mam różne kodowania w różnych tabelach ?
NuLL
A co zrobic jesli serwer MySQL ma kodowanie ISO-8859-2 a strona jest w UTF-8. Dalem SET NAMES utf8 to pomaga na odczyt - ale juz nie na zapis i mowiac prawde nie wiem co robic sad.gif
sethir
Cytat(NuLL @ 13.11.2007, 14:46:24 ) *
A co zrobic jesli serwer MySQL ma kodowanie ISO-8859-2 a strona jest w UTF-8. Dalem SET NAMES utf8 to pomaga na odczyt - ale juz nie na zapis i mowiac prawde nie wiem co robic sad.gif


Ja zastosowałem protezę (tymczasowo jak znajdę rozwiązanie mojego problemu):

  1. <?php
  2. function utf2iso($in)
  3. {
  4. // aby wylaczyc globalnie w calym kodzie konwersje to ustawic zmienna $aktywna = F
    alse
  5. $aktywna = True;
  6. $out = $in;
  7. if ( $aktywna) $out = iconv("UTF-8", "ISO-8859-2", $in);
  8. return $out;
  9. }
  10. ?>


konwersję z UTF na ISO załatwi ta proteza:

  1. <?php
  2. function iso2utf($in)
  3. {
  4. // aby wylaczyc globalnie w calym kodzie konwersje to ustawic zmienna $aktywna = F
    alse
  5. $aktywna = True;
  6. $out = $in;
  7. if ( $aktywna) $out = iconv("ISO-8859-2", "UTF-8", $in);
  8. return $out;
  9. }
  10. ?>
banan.
Witam, też miałem mase problemów z kodowaniem i moje wnioski są takie:
- albo UTF-8
- albo ISO-8859-2

Razem to nie współgra

Jeżeli masz w bazie ustawione ISO, to pozamieniaj kodowanie na ISO w plikach i samych plików, jeżeli masz UTF w bazie to pliki muszą być teżUTF, ale uwaga, mi przy kodowaniu jako UTF plików, które includowałem na początku strona się rozjezdzała!!! problem rozwiązuje się kodując niektóre pliki jako ISO(pliki z funkcjami, połączeniem do bazy)

Pozdro
XeoNik
Tak czytam, czytam próbuje różnych metod, ale nie moge poradzić sobie z moim problemem. Otóz próbuje zmodyfikować pewnego CMS-a aby wyświetlał polskie znaki:

1) Zmieniłem kodowanie w header i w phpmyadminie i jest lepiej
2) Na stronie wyświetlają mi się elegancko polskie znaki wszystkie.
3) W bazie danych za to mam np &#347 zamiast ś (ale na stronie jest poprawnie)
4) Jedyny problem w tej chwili mam z szukarką:
po wpisaniu np znaku "ś" do wyszukania, skrypt daje mi komunikat: "Search results: "¶"" i brak wynikow.

Pomocy smile.gif
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.