Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kodowania znakow php+mysql
Forum PHP.pl > Forum > PHP
gummmibear
Witam.

Problem polega na kodowaniu znakow. W bazie posiadam tabele kodowana 'latin2' kodowanie na stronie 'iso-8859-2'.

Jeśli sprobóje odczytac rekord z bazy danych zamiast znaku polskiego mam '?'

Kodowanie bazy danych to 'utf-8'
Kodowanie znakow w systemie to iso-8859-2

funkcja icnov() nie daje rady. Gdy zmienie kodowanie na utf, a potem chce przekonwertowac na iso, otrzymuje znow znaki zapytania.



Męcze sie z tym caly dzień. Narazie jestem jedną bramkę do tyłu. ;(
Lino
Na stronie musisz mieć również kodowanie utf-8 a przed pobraniem rekordu z bazy wydaj polecenie 'set names utf8;'
gummmibear
kodowanie zmienione na utf-8
musialem jeszcze przekonwertowac plik na utf-8

ale nadal nie odczytuje poprawnych znakow z bazy danych ;(
baza z kodowanie utf-8
porownywanie znakow na utf-8


dluga noc sie zapowiada.
ozikus
ja to rozwiazałem w ten sposób podczas połaczenia
  1. <?php
  2. class cndb
  3. {
  4. var $dbhost="localhost";
  5. var $dbuser="root";
  6. var $dbpass="bal";
  7. var $dbbaza="so";
  8.  
  9.  function connect()
  10.   {
  11.      @$connection = mysql_connect($this->dbhost,$this->dbuser,$this->dbpass);
  12.      mysql_query("SET CHARACTER latin2", $connection);
  13.      mysql_query("SET NAMES latin2", $connection);
  14.      mysql_query("SET CHARACTER_SET latin2", $connection);
  15.      mysql_select_db($this->dbbaza);
  16.  
  17.  
  18.      if(!$connection OR !mysql_select_db($this->dbbaza))
  19.      {
  20.             die("<Br>Brak połączenia z serwerem lub nieprawidłowa baza.<br>");
  21.      }
  22.    }
  23.  
  24.  
  25. }
  26.  
  27.  
  28.  
  29. $db=new cndb;
  30. $connect=$db->connect();
  31. ?>


te rzeczy chyba sa naistotniejsze

  1. <?php
  2. mysql_query("SET CHARACTER latin2", $connection);
  3.      mysql_query("SET NAMES latin2", $connection);
  4.      mysql_query("SET CHARACTER_SET latin2", $connection);
  5. ?>


Baze mam ustawioną na latin2. u mnie wszysko działa ok
gummmibear
Przekonwertowałem baze do utf8.
Zmieniłem kodowanie stron na utf8+kodowanie pliku na utf8. Inaczej nie dziala, po samej informacji o kodowaniu strony sa krzaczki ;]

Po połączeniu z bazą dodałem
mysql_query("SET NAMES utf8");

Wszystko dziła teraz jak talala party.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.