Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php + MySql] kodowanie zawartości komórek
raf_gc
post 21.05.2006, 13:11:20
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 12.05.2006

Ostrzeżenie: (0%)
-----


Co trzeba zrobić, aby php wyswietlały się polskie znaki w wyrazach pobranych z bazy MySQL?
Przy korzystaniu z konsoli MySQL wszystkie rezultaty wyszukiwania mają polskie znaki, natomiast przy wywoływaniu z php zamiast "galeria zdjęć" jest "galeria zdj??", kodowanie strony jest ustawione na iso-8859-2.

Czy trzeba ustawiać jakieś kodowanie? W phpMyAdmin rekordy wyświetlają się poprawnie.
Go to the top of the page
+Quote Post
Nightwalker
post 21.05.2006, 13:14:43
Post #2





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 5.02.2006
Skąd: Bytom

Ostrzeżenie: (10%)
X----


A jakie masz kodowanie w bazie? sprawdź czy są PL znaczki jak ustawisz kodwowanie strony na utf-8.


--------------------
Go to the top of the page
+Quote Post
mike
post 21.05.2006, 13:17:06
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Zakładam, że w nagłówku określasz iso-8859-2 oraz, że plik jest zapisany też w tym kodowaniu.
Jeśli nadal nie masz polskich znaków to musisz ustawić kodowanie dla połączenia z bazą dnych.
Jako pierwsze zapytanie, zanim zaczniesz wyciągać dane daj:
  1. SET CHARACTER_SET latin2;

latin2 jest odpowiednikiem iso-8859-2


---added---
Proszę poprawić temat wątku.
Obecny temat jest, ..., w smie go nie ma. Same znaczniki nic nie mówią.
Potem ludzie się dziwią, że wyszukiwarka jest mało efektywna.
Go to the top of the page
+Quote Post
raf_gc
post 21.05.2006, 13:52:46
Post #4





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 12.05.2006

Ostrzeżenie: (0%)
-----


Po wykonaniu zapytania
  1. SET CHARACTER_SET latin2;
mój serwer MySQL zwraca błąd:
ERROR 1193 (HY000): Unknown system variable 'CHARACTER_SET'
Po wykoniu
  1. SET CHARACTER SET latin2;

coś się niby zmienia, ale dane nadal nie są poprawnie zapisywane do komórek, zauważyłem, że uzupełniając komórki z poziomu php i odczycie ich z poziomu php wszystko jest ok, ale już z poziomu phpMyAdmin i konsoli MySQL nie ma polskich znaków, próbowałem zmienić kodowanie w pliku konfiguracyjnym phpMyadmin i nic z tego. Chciałbym po prostu mieć możliwośc dodawania rekordów z poziomu phpMyAdmin ale chyba bdę musiał wszystko robic z poziomu php.

A jak można sprawdzić w kodowaniu zapisuje domyslnie konsola MySQL i phpMyAdmin?
Go to the top of the page
+Quote Post
em1X
post 21.05.2006, 13:58:57
Post #5





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. mysql_query("SET CHARACTER SET latin2");
  4. mysql_query("SET collation_connection = latin2_general_ci");
  5.  
  6. ?>


Nie wiem jak u Ciebie ale u mnie to rozwiazalo wszelkie problemy z ogonkami..


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
raf_gc
post 21.05.2006, 14:23:24
Post #6





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 12.05.2006

Ostrzeżenie: (0%)
-----


Utworzyłem taki skrypt:

  1. <?php
  2. $SQL = mysql_connect("localhost", "root", "root");
  3. mysql_select_db("raf", $SQL);
  4. mysql_query("SET CHARACTER SET latin2");
  5. mysql_query("SET collation_connection = latin2_general_ci");
  6. $query = "create table photos (PostID int not null auto_increment, author varchar(30), date date, time time, title varchar(50), content mediumtext, primary key(PostID))";
  7. mysql_query($query, $SQL);
  8. $query = "insert into photos values(\"0\"\"raf\"\"2006-05-21\"\"14:29\"\"zdjęcia\"\"galeria zdjęć\")";
  9. mysql_query($query, $SQL);
  10. echo "Done!";
  11. ?>


Po otworzenie phpMyADmin widze przy tych polach "latin1_swedish_ci", nie wiem czy się martwić bo phpMyAdmin pkazuje takie zmienne systemowe serwera MySQL:

character set client utf8 latin1
character set connection utf8 latin1
character set database latin1 latin1
character set results utf8 latin1
character set server latin1 latin1
character set system utf8 utf8
character sets dir E:\MySQL\MySQL Server 5.0\share\charsets/ E:\MySQL\MySQL Server 5.0\share\charsets/
collation connection utf8_general_ci latin1_swedish_ci
collation database latin1_swedish_ci latin1_swedish_ci
collation server latin1_swedish_ci latin1_swedish_ci

Co bym nie robił zawsze pojawia sie latin_swedish_ci.

Ten post edytował raf_gc 21.05.2006, 14:23:48
Go to the top of the page
+Quote Post
em1X
post 21.05.2006, 14:47:33
Post #7





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

Ostrzeżenie: (0%)
-----


Mniejsza z tym co pokazuje phpMyAdmin. Czy przy wyswietlaniu przez php danych, polskie znaki są czy nie?


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
Nightwalker
post 21.05.2006, 14:55:36
Post #8





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 5.02.2006
Skąd: Bytom

Ostrzeżenie: (10%)
X----


Gdy będziesz na stronie to (dla firefox) Widok -> Kodowanie Znaków -> i kombinuj z kodowaniami, przez to dojdziesz jakie masz kodowanie w swojej bazie.


--------------------
Go to the top of the page
+Quote Post
raf_gc
post 21.05.2006, 15:03:53
Post #9





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 12.05.2006

Ostrzeżenie: (0%)
-----


Cytat(em1X @ 2006-05-21 14:47:33)
Mniejsza z tym co pokazuje phpMyAdmin. Czy przy wyswietlaniu przez php danych, polskie znaki są czy nie?

Tak ,ale tylko gdy komórki są zapisywane poprzez zapytania MySQL, jesli próbuję to zrobić poprzez phpMyAdmin (kodowanie ascii lub latin2_general_ci) lub poprzez konsolę, to polskich znaków nie ma.

widze, ze będe zmuszony stworzyć skrypt do obsługi bazy danych, dzięki waszym sugestiom doszedłem właśnie, że php zapisuje wszystko dobrze i dlateg dziękuję wam za to.

Jeszce tylko pytanie, jekiego typu komórki powinienem używać do przetrzymywania np newsów ze strony, blob czy mediumtext, a może jakieś inne?

Ten post edytował raf_gc 21.05.2006, 15:04:19
Go to the top of the page
+Quote Post
em1X
post 21.05.2006, 15:55:40
Post #10





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

Ostrzeżenie: (0%)
-----


Blob to raczej dane binarne, multimedia.. Ja zwykle uzywam pola text (ale to wszystko zalezy od potrzeb.. zapraszam do manuala po wiecej informacji)


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.07.2025 - 22:07