bartolomeo_1 Napisano 28 Maja 2006 Zgłoś Napisano 28 Maja 2006 Witam. Nie wiem czy to właściwy dział ale mam wrażenie że najprędzej tu znajdzie się ktoś kto będzie umiał odpowiedzieć. Mam problem tam gdzie problemu być nie powinno: pisze w php w vim-ie ( set enc=utf8 ) wyświetlanie przez apache w php (<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">) wszystko gra. wyświetla polskie znaki poprawnie. tworze tablice w mysql: "create table uzytkownicy (id varchar(32)) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci" przez php obsługuje żądania "insert into uzytkownicy(id) values('ęóąśłżźćń')""select * from uzytkownicy" wszyskto wyświetlane ok. wchodze do "mysql -u root -p ". tam daje select * from uzytkownicy where id = utf8'ąęóąśłżźćń' select * from uzytkownicypierwszy nic a w drugim krzaczki zamiast polskich liter. mało tego: cały serwer mysql ustawiony jest na utf8. jakby tego było mało: vimem (utf8) edytowałem plik później ładowany prze load data infile. wynik: ani mysql nie widzi tego poprawnie (znaki zapytania) ani potem apache nie wyświetla tego poprawnie (tu również zamiast są znaki zapytania). walczę z tym już jakiś czas i mam dość. potrzebuje żeby to było w jednym kodowaniu (np utf8) żeby: administrować loginami z polskimi znakami i edytować w vimie zrzucone tabele. może ktoś już się z tym spotkał? proszę o jakakolwiek podpowiedź. zmienić kodowanie w całości? jasne tylko na jakie, żeby nie było takich jazd? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
Plasma Napisano 28 Maja 2006 Zgłoś Napisano 28 Maja 2006 Może problem tkwi w ustawieniach kodowania samego terminala? Bo z tego co napisałeś, póki korzystasz tylko z php do komunikacji z bazą, to dane są wyświetlane poprawnie. Ja używałem kodowania iso8859-2 i nie miałem problemów z korzystaniem z bazy danych mysql-a. Dobrze współpracowała zarówno z php, z shellem i z mceditem (edytowanie wyeksportowanej bazy). Ale domyślnym kodowaniem w systemie było iso8859-2. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
bartolomeo_1 Napisano 28 Maja 2006 Zgłoś Napisano 28 Maja 2006 (edytowane) obawiam się, że problem leży głębiej. mam ustawione w terminalu: SET character_set_server=utf8;// SET NAMES 'utf8';// SET CHARACTER SET utf8;// a kłopotem jest to, że mysql pobierając (load data infile) dobrze sformatowane dane (vim utf8) konwertuje je jakoś do postaci innej niż utf8 który pobiera php. dodam tylko ze uzywając select into outfile mysql zapisuje plik w kodowaniu innym niz utf8 vima czy php. mało tego. jak próbuje teraz zwykłego insert into uzytkownicy(id) values ('ę') to zawsze wypisuje mi ERROR 1406 (22001): Data too long for column 'id' at row 1 :mur: sproboje doczytac cos jeszce na http://dev.mysql.com/doc/ ew zmienic na iso8859-2 Edytowane 28 Maja 2006 przez bartolomeo_1 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
Sid Napisano 29 Maja 2006 Zgłoś Napisano 29 Maja 2006 Może masz taki sam problem jak ja miałem. Potem odkryłem że są 3 typy UTF-8: UNIX, DOS i MAC Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
bartolomeo_1 Napisano 1 Czerwca 2006 Zgłoś Napisano 1 Czerwca 2006 (edytowane) Może masz taki sam problem jak ja miałem. Potem odkryłem że są 3 typy UTF-8: UNIX, DOS i MAC hmmm. no to juz wiem czego szukac. ale czy to mozliwe ze te 3 utf8 inaczej koduja polskie zanaki? ale i tak nie jest dobrze bo przeformatowalem wszysko na iso-8859-2 (@mysql = latin2) i dalej inaczej koduje php a inaczej przechowuje mysql (znaki zapytania miast polskich literek). probowalem wyslac przy polaczeniu przez php komendy SET NAMES 'utf8';//SET CHARACTER SET utf8;//bez zmian. poddalem sie. napisalem dodatkowo małą stroneke w php ktora pozwala mi na wykonanie dowolnej komendy (loguje sie jako root nie jakis phpbot) i po prostu przesyla komende do serwera i zwraca odpowiedz. nie jest to rozwiazanie idealne (bezpieczenstwo :P ) ale lepszego na razie nie ma. root jest zabepieczony dlugim haslem i ograniczona strefa logowania. lepiej na razie nie bedzie. moze przy okazji sproboje przeinstalowac wszysko. chyba ze jeszcze ktos ma jakis pomysl? Edytowane 1 Czerwca 2006 przez bartolomeo_1 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
Sid Napisano 2 Czerwca 2006 Zgłoś Napisano 2 Czerwca 2006 Możliwe. Ja na http://sfumato.pierwszaa.be jak miałem UTF-8 DOS to się krzaczyło wszystko... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...