Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%)
|
1. Dodałem za pomocą skryptu php nasepujący string do bazy ęąśżźćłó.
Teraz jeśli za pomocą skryptu php pobiorę dane z bazy, to na ekranie widzę polskie znaki. Natomiast jak dam selecta z konsoli mysql to zamiast ęąśżźćłó widzę dziwne krzaczki 2. Natomiast jeżeli dodam do bazy striga z polskimi znakami korzystając z konsoli mysql, to po wydaniu selecta (także z konsoli) na ekranie widzę polskie znaki, natomiast po wyciągnięciu danych za pomocą skyrptu php nie ma polskich znaków - są jakieś krzaczki. Próbowałem stosować wskazówki, któe znalazłem na forum php, m.in. tutaj http://forum.php.pl/index.php?showtopic=31...l=polskie+znaki nie pomagają. oraz na różnych innych stronach z googla. Nie ma poprawy Muszę mieć możliwość edytowania/dodawania z konsoli a nie tylko z poziomu php. Konsola mi potrzebna jak ktoś coś namiesza do edycji ręcznej. Proszę o pomoc. Nie korzystam z phpMyAdmina (nie chcę go i nie istalowałem) Ten post edytował J4r0d 13.06.2006, 07:58:47 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%)
|
Pokolei:
Ważne jest aby MySQL wiedział jakim kodowaniem operuje klient. Jeśli klient sam nie przesyła informacji o kodowaniu, MySQL wtedy przyjmuje kodowanie domyślne czyli latin1 (iso-8859-1) - można to domyślne kodowanie zmienić w pliku konfiguracyjnym. W Twoim przypadku - jeśli php czy konsola mysql nie przekazuje informacji o kodowaniu, a można przyjąć, że nie przesyłają (bo same z siebie tego nie robią), MySQL przyjmuje, że wszystkie zapytania jakie od nich dostaje są w latin1 i tak samo zachowuje się w drugą stronę (przy zwracaniu danych na zapytanie). To jest trochę zwodnicze, bo mimo danych zapisywanych do bazy w nie właściwym kodowaniu, można odnosić wrażenie, że jest wszystko ok.. ale dopóki własnie nie spróbuje się pobrać danych poprzez interfejs operujący w innym kodowaniu. Na przykładzie (który najprawdopodobniej odzwierciedla co się dzieje w Twoim przypadku): Dodawanie danych
Pobieranie danych:
Teraz załóż (bo tak też zapewne jest), że konsola mysql pracuje w innym kodowaniu (jeśli to na windowsie to zapewne jest to win-1250) i podobnie jak php nie przesyła danych do mysql na temat kodowania w jakim pracuje. Wtedy dzieje się dokładnie to samo co opisałem wyżej i logiczne jest, że konsola pobierając dane zapisane przez php otrzyma szlaczki i wice wersa. Aby wszystko razem mogło współgrać serwer mysql musi wiedzieć w jakim kodowaniu pracuje klient a to możesz osiągnąć tylko poprzez odpowiednie informowanie serwera mysql (poprzez 'SET NAMES' właśnie). Najprawdopodobniej w przypadku php przed jakimikolwiek operacjami powinieneś przesłać:
a w przypadku konsoli mysql na windowsie:
Upewnij się, że faktycznie to są te kodowania, bo jeśli jest inaczej to na pewno będzie kaszana. Dane, które zapisałeś do bazy uprzednio, bez informowania bazy o kodowaniu usuń albo przekonwertuj... bo teraz podchodząc właściwie do sprawy będziesz dostawał w nich krzaczki. |
|
|
|
J4r0d Problem z polskimi znakami 12.06.2006, 13:51:38
mariuszn3 Wszystko rozbija się o kodowanie znaków. W jakim k... 13.06.2006, 12:46:37 
J4r0d Cytat(mariuszn3 @ 13.06.2006, 11:46 ) Wsz... 13.06.2006, 13:02:53 
bendi Cytat(J4r0d @ 13.06.2006, 14:02 ) Przypad... 13.06.2006, 14:03:12 
J4r0d Cytat(bendi @ 13.06.2006, 13:03 ) Sprawdz... 13.06.2006, 14:09:15 
J4r0d Cytat(mariuszn3 @ 13.06.2006, 16:14 ) a w... 13.06.2006, 21:44:28
mariuszn3 Tak jak pisałem, upewnij się, że to faktycznie to ... 14.06.2006, 00:57:19
J4r0d Cytat(mariuszn3 @ 13.06.2006, 23:57 ) Tak... 14.06.2006, 06:40:33 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 05:55 |