[MySQL] Problem z polskimi znakami

Odpowiedz Nowy wątek
2007-06-28 08:03
0

Hej!
Mam problem z wyświetlaniem polskich znaków w Bazie danych.
PHPMyAdmin jest ustawiony tak :
-System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
-System porównań dla połączenia MySQL: utf8_polish_ci
W pliku PHP który obsługuje baze danych (formularze) jest <meta http-equiv="content-type" content="text/html; charset=utf-8">
więc niby też ok.

W momencie np dodania rekordu do bazy danych z poziomu własnego formularza polskie znaki są.... Natomiast jeśli dodam rekord w PHPMyAdmin to polskie znaki są tylko w PHP MyAdmin, a jak przeglądam baze z własnego formularza są krzaczki... I vice versa...
Czyżby dodawanie PHPMyAdmin kodował innym utfem niż ręczne dodanie z poziomu kodu?

Pozostało 580 znaków

2007-06-28 08:19
0

Po polaczeniu z baza wykonaj jeszcze

set names utf8

You need to learn how to walk
before you can run

Pozostało 580 znaków

2007-06-28 08:35
0
johny_bravo napisał(a)

Po polaczeniu z baza wykonaj jeszcze

set names utf8

Niestety nic to nie daje :/ Zamiast krzaczków są teraz znaki zapytania przy przeglądaniu z poziomu formularza....

Pozostało 580 znaków

2007-06-28 12:00
0

a ustawiłeś kodowanie dokumentu, w którym są wyświetlane dane z bazy na utf-8?


Pozostało 580 znaków

2007-06-28 12:09
0
thecoder napisał(a)

a ustawiłeś kodowanie dokumentu, w którym są wyświetlane dane z bazy na utf-8?

Tak ustawiłem...
W Notepad ++ jest jeszcze ustawione FORMAT->Koduj w UTF-8

Pozostało 580 znaków

2007-06-29 00:09
0

nie wiem, a spróbuj może: SET CHARSET utf8 ?


homepage
<font size="1">Jeśli starasz się, by Twój system był idiotoodporny, zawsze znajdzie się idiota, który jest bardziej pomysłowy od Ciebie.</span>

Pozostało 580 znaków

2007-06-29 15:05
0
Coldpeer napisał(a)

nie wiem, a spróbuj może: SET CHARSET utf8 ?

Ehhh próbowałem tak... Są tylko inne krzaczki :-( :-/

Pozostało 580 znaków

2007-06-29 15:07
0

ja próbowałem takiego zestawu:

        $c = "utf8";
        mysql_query('SET character_set_client = '.$c);
        mysql_query('SET character_set_results = '.$c); 
        mysql_query('SET character_set_connection = '.$c); 
        mysql_query('SET default_charset = '.$c);
        mysql_query('SET NAMES '.$c);
        mysql_query('SET SET CHARACTER SET '.$c);
        mysql_query('charset '.$c);
        var_dump(mysql_client_encoding());
        //do .htaccess: "AddDefaultCharset UTF-8"

NIC nie pomogło, cp uparcie ustawione na latin2, zero reakcji w kontakcie z bazą

więc skorzystałem z własnej funkcji do zmiany kodowania:
http://pastebin.4programmers.net/2733

przed zapisem konwersja do iso-8859-2, przed wyświetleniem konwersja całej strony do utf8 - ob_start() etc. Problemy się skończyły


Pozostało 580 znaków

2007-07-02 08:19
0

Dziwne... Ustawiłem
mysql_query('SET NAMES utf8');

a jak sprawdzam jaki jest zestaw znaków :

$charset = mysql_client_encoding($link);

echo "Obecny zestaw znaków to : $charset\n";

to wyskakuje LATIN1...
Jakiś błąd w phpMyAdmin ???

Pozostało 580 znaków

2007-07-03 09:10
0

Znalazłem rozwiązanie :


            $c = "utf8";
                mysql_query('SET character_set_client = '.$c);
                mysql_query('SET character_set_results = '.$c);
                mysql_query('SET character_set_connection = '.$c);
                mysql_query('SET default_charset = '.$c);

                mysql_query('SET character_set_database = '.$c);
                mysql_query('SET character_set_server =  '.$c);
                mysql_query('SET character_set_system =  '.$c);
                mysql_query('SET collation_database =  '.$c);
                mysql_query('SET collation server = '.$c);;

                mysql_query('SET NAMES '.$c);
                mysql_query('SET SET CHARACTER SET '.$c);
                mysql_query('charset '.$c);
                mysql_query('SET character_set_connection=utf8_polish_ci');
                mysql_query('SET character_set_client=utf8_polish_ci');
                mysql_query('SET character_set_results=utf8_polish_ci');
                mysql_query(' SET NAMES utf8 ');
                var_dump(mysql_client_encoding());

Teraz wyświetla dobrze polskie znaczki na formularzu i w bazie. Jedynie co mnie zastanawia to... że pokazuje Obecny zestaw znaków to : latin1 string(6) "latin1"

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0