Skocz do zawartości

Problem z polskimi znakami w mysql


Rekomendowane odpowiedzi

Witam. Mam problem z polskimi znakami w bazie mysql.

 

Napisałem skrypt, którego celem jest połączenie się z bazą mysql z kodowaniem ustawionym na utf8_polish_ci oraz wyświetlenie rekordów, które zawierają polskie znaki. W 'headzie' strony ustawione jest kodowanie 8859-2. Niestety, mimo iż w phpmyadmin polskie znaki wyświetlają się prawidłowo, na stronie w miejsce polskich znaków pojawiają się pytajniki. Czy na localhoscie, czy na serwerze zdalnym dzieje się to samo.

 

Jak sprawić, by polskie znaki były wyświetlane poprawnie ?

Odnośnik do komentarza
Udostępnij na innych stronach

Wszędzie i we wszystkim mam utf-8

W notatniku windowsowym mam tylko możliwość zapisu w Unicode, Ansi, UTF-8,Unicode big endian

 

Coś jest z pobieraniem danych z bazy, bo gdy wpisuje polskie znaki poza <? ?> wyświetlają się normalnie

Odnośnik do komentarza
Udostępnij na innych stronach

Edit:

 

Zamieszczam kod:

 

<HEAD>

GML
<HEAD>

<meta http-equiv="content-type" content="text/html; charset=utf-8" /> //Ustawienie kodowania

</HEAD>

<body>

<?

mysql_connect("localhost", "root", "vertrigo");

mysql_select_db("polznaki");

$gut= mysql_query("SELECT * FROM imiona");

while($sius = mysql_fetch_assoc($gut)){

echo $sius['nazwa']." ";

}

 

?>

ąśśę€ó€śźćń //to tylko po to, żeby sprawdzić, czy text htmlowy się wyświetli poprawnie. I wyświetla się...

</body>

 

Firefox pokazuje, że kodowanie to UTF-8

Notatnik pokazuje, że kodowanie to UTF-8

 

PHPmyadmin:

 

System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)

System porównań dla połączenia MySQL: UTF_polish_ci

Baza danych, tabela - tak samo jak wyżej

 

I dalej są pytajniki

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Wartości pobrane z MySql zostaną wyświetlone w tym samym kodowaniu, w jakim zostały zapisane, a samo ustawienie kodowana w phpmyadminie można o kant dupy potłuc. Jedyny słuszny sposób to aktualizować i odczytywać dane na stronie/ze strony którą projektujemy, nie bawiąc się nic z kodowaniem. Czyli dodajemy zawartość z tego samego kodu, z którego potem pobieramy (oczywiście nie z tego samego pliku, ale wiecie o co chodzi, jakiś panel admina czy coś).

 

Ostatecznie jest iconv(), ale przy większej ilości danych sporo obciąży to serwer;

 

Dowód, ze to działa - gdy powstał GMCLAN, tego ustawienia w MySql nie było, a mimo update do nowych wersji kodowanie się nie zepsuło. Fakt, że phpMyAdmin pokazuje krzaczki o których mówicie, ale sama strona wciąż odczytuje i zapisuje tak jak należy - binarnie bowiem nic się nie zmienia :)

Odnośnik do komentarza
Udostępnij na innych stronach

Tak, ale właśnie phpmyadmin pokazuje mi przykładowo wyraz "Bałwanuś" a na stronie jest "Ba?wanu?"

 

Bardziej zależałoby mi, żeby dane na stronie były wyświetlanie prawidłowo. Od godziny 16:00 szukam na to sposobu, jest 20:30.

 

Jak ostatecznie zrobić pobranie polskiego słowa z bazy danych i wyświetlenie na stronie?

 

Bardzo proszę o pomoc

Odnośnik do komentarza
Udostępnij na innych stronach

Witam. Sprawdzałem i może tutaj mam coś źle...

 

GML
auto increment increment 1

auto increment offset 1

automatic sp privileges ON

back log 50

basedir C:\Program Files\VertrigoServ\Mysql\

binlog cache size 32 768

bulk insert buffer size 8 388 608

character set client utf8

(Wartość globalna) latin1

character set connection utf8

(Wartość globalna) latin1

character set database latin1

character set filesystem binary

character set results utf8

(Wartość globalna) latin1

character set server latin1

character set system utf8

character sets dir C:\Program Files\VertrigoServ\Mysql\share\charsets\

collation connection utf8_polish_ci

(Wartość globalna) latin1_swedish_ci

collation database latin1_swedish_ci

collation server latin1_swedish_ci

completion type 0

concurrent insert 1

connect timeout 5

datadir C:\Program Files\VertrigoServ\Mysql\data\

date format %Y-%m-%d

datetime format %Y-%m-%d %H:%i:%s

Jeżeli tak to jak to naprawić?

 

 

 

 

Edit: poradziłem już sobie z tym za pomocą narządzia mysqld ustawiłem domyślne kodowanie :)

 

Zastanawia mnie tylko co, jak będzie to serwer zdalny? Tam już takich narzędzi nie ma...

Odnośnik do komentarza
Udostępnij na innych stronach

Wiem, że jest takie coś jak kodowanie pliku tekstowego. Ale przy Ansi i utf8 są pytajniki a przy unicode nic się nie wyświetla

Nie zrozumiałeś mnie. Nie chodzi mi o kodowanie a o kody Unicode, nie znam ich na pamięć ale przykładowo w bazie będzie

 baýwanuđ

a przy wyświetlaniu takiego tekstu kodowanie już nie ma znaczenia. W taki sposób Psyś ma tu swój nick.

Odnośnik do komentarza
Udostępnij na innych stronach

ja musialem zrobic tak ze skasowalem baze, zrobilem nowa, zmienilem kodowanie bazy na utf-8 general (chyba bez BOM), utworzylem tabele o tym samym kodowaniu i dopiero dzialaly polskie znaki

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

A ja tworzę tabelę, nie patrzę jakie kodowanie (nic nie zmieniam, zostawiam takie jakie jest domyślnie) i uzupełniam ją już ze strony ( INSERT, UPDATE, DELETE, REPLACE, SELECT ) - i nie mam problemów, pomimo, że są całkowicie rozbieżne kodowania w obu przypadkach (ale kodowanie strony w meta tagach z kodowaniem pliku się zgadza, żeby dane post dobrze dochodziły) - dodam, że używam ISO-8859-2.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...