![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 30.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Strona ma kodowanie:
Pliki również są zakodowane w latin2 jednak po wejsciu na stronę z przeglądarki, przeglądarku zmienia kodowanie na utf-8 co powoduje krzaki, jak zmienię w przeglądarce kodowanie na iso-8859-2 to kodowanie jest ok. Dlaczego przeglądarka zmienia mi kodowanie ? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 17 Dołączył: 4.09.2010 Skąd: far far away Ostrzeżenie: (0%) ![]() ![]() |
Jaka przeglądarka ?
Jaki jest doctype tego pliku pewnie jakiś xhtml ? Jak definiujesz całość ? Ten post edytował masiakla 5.09.2010, 23:32:58 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 30.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Przeglądarka: FF, OPERA, IE
To popularny skrypt TSI-G Nagłówek:
Na serwerze na home. gdzie mam inne ustawienie kodowania w bazie wszystko jest ok, ale na dedyku z innymi ustawieniami niż na home jest problem z kodowaniem. Próbowałem setki razy zmieniać rożne parametry, ale bez rezultatu. Mimo wszystko (chociaż próbowałem różnych ustawień, różnica jest tylko taka, że u mnie jest System kodowania znaków dla MySQL: UTF-8 Unicode (utf8) a na home latin-2) kodowanie w bazie chyba nie powinno zmieniać kodowania które jest ustawione w: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> a zarazem kodowania które ustawia przeglądarka ? Ach te głupie polskie ogonki. Czasem kilka dni trzeba kombinować co i jak a 'anglicy' mają z górki ![]() Ten post edytował nitro11 5.09.2010, 23:48:12 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 17 Dołączył: 4.09.2010 Skąd: far far away Ostrzeżenie: (0%) ![]() ![]() |
Nie miewam z goła takiego problemu bo sam używam głównie utf-8, ale kiedyś miałem coś podobnego i było to z powodowane tym, że w nagłówkach odpowiedzi było podane kodowanie, które brały sobie przeglądarki, a meta olewały wprost, może i to jest tutaj problemem. Kurd enie pamiętam jak to rozwiązałem, ale coś w configu serwera chyba zmieniałem ....
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cała stronka o kodowaniu w PHPie, HTML i Bóg raczy wiedzieć w czym jeszcze. Może ci pomoże. Obstawiam headery albo mimo wszystko bazę.
-------------------- Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]! |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 30.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Próbowałem zmieniać nawet kodowanie stron na utf i plików, ale nici...
Jeśli ktoś może mi powiedzieć, czy problem z kodowaniem w bazie może mieć wpływ na to, że w przeglądarkach ustawia się domyślne kodowanie inne niż to ustawione w META byłbym bardzo wdzięczny bo nie wiem czy mam walczyć dalej z bazą, czy z czymś innym. A może w jakiś inny sposób można wymusić kodowanie w bazie ? Ten post edytował nitro11 6.09.2010, 00:03:30 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 17 Dołączył: 4.09.2010 Skąd: far far away Ostrzeżenie: (0%) ![]() ![]() |
Po krótkim sprawdzeniu na serwerze mam to zrobione poprzez dodanie do configu http://httpd.apache.org/docs/2.0/mod/core....ddefaultcharset, można to tez zrobić w htaccess, jak nie masz zablokowanej możliwości zmiany tego, po więcej odsyłam do dokumentacji.
Drugi sposób, jak dla mnie trochę brutalny, ale tez może zadziałać to ręczna zmiana nagłówka Content-type wysyłanego przez serwer: Egh niedoczytałem drugiego posta: Cytat(nitro11) Mimo wszystko (chociaż próbowałem różnych ustawień, różnica jest tylko taka, że u mnie jest System kodowania znaków dla MySQL: UTF-8 Unicode (utf8) a na home latin-2) kodowanie w bazie chyba nie powinno zmieniać kodowania które jest ustawione Tak może, chodzi o to, nawet nie musi tego robić sama baza, zdarzą się też tak, że wystarczy by klient mysql miał inne kodowanie to wszystko będzie się chrzanić. Unicode polskie znaki np. zapisuje praktycznie jako dwa znaki i z tąd może być ten problem. Ten post edytował masiakla 6.09.2010, 00:05:30 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 30.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czyli mam dopisać do konfiguracji msql w pliku msql.coś tam ; linijkę:
AddDefaultCharset utf-8 lub AddDefaultCharset iso-8859-2 albo dodać header("Content-Type: text/html; charset=ISO-8859-2"); w index.php ? Masiakla, przeczytałem też Twojego najnowszego posta (też by mi umknął) i skoro mówisz, że to jednak baza a skoro na home (inna konf. bazy) wszystko działało to chyba nie ma co kombinować innego tylko robić coś bazą, ale co ? Normalnie nie chce mi sie juz przerabic 100 plikow przez iconv bo moze zadziala ![]() BTW: A jak na linuxie zmienić ustawienie MySQL: System kodowania znaków dla MySQL: UTF-8 Unicode (utf8) (zmienić na inne kodowanie, latin2) Z MyAdmina tego nie zrobię, ale w konf. mysql musi się jakoś dac. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 17 Dołączył: 4.09.2010 Skąd: far far away Ostrzeżenie: (0%) ![]() ![]() |
Adddefaultcharset to jest do konfiguracji Apache'a, w mysql można załatwić to inaczej ... sekundkę muszę znowu wleźć na serwer bo nie pamiętam.
BTW nagłówków, zobacz za pomocą livehttpheader czy innego dodatku do ff czy rzeczywiście dostajesz inny. Przykładowe wpisy ze starego configa odnośnie kodowania w pliku my.cnf(jakbyś miał problem z wyszukaniem to możesz użyć locate my.cnf lub whereis my.cnf, powinno być w etc lub ciutkę głębiej na Fedorze było /etc/my.cnf, na Debianie mam w /etc/mysql/my.cnf). Kod [mysql] character-sets-dir=utf8 default-character-set=utf8 [mysqladmin] character-sets-dir=utf8 default-character-set=utf8 [mysqlcheck] character-sets-dir=utf8 default-character-set=utf8 [mysqldump] character-sets-dir=utf8 default-character-set=utf8 [mysqlimport] character-sets-dir=utf8 default-character-set=utf8 [mysqlshow] character-sets-dir=utf8 default-character-set=utf8 [myisamchk] character-sets-dir=utf8 [myisampack] character-sets-dir=utf8 [mysqld] character-set-server = utf8 default-character-set = utf8 Tylko teraz pozostaje kwestia jak masz to w bazie .... Kodowanie oczywiście zmieniasz na swoje powyższe to tylko przykład. Ten post edytował masiakla 6.09.2010, 00:19:24 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
hmm, mam rozumieć że regułka "set names MOJE_KODOWANIE" już była sprawdzana? np. dla PDO
-------------------- Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]! |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 30.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście SET NAMES bylo sprawdzane, ale nie działa.
Live Headers rzeczywiście zwraca: Content-Type: text/html; charset=UTF-8 A nie latin2! Dziwna sprawa, plik w etc/mysql/my.cnf zajmuje 126 bajtow i jest tam 5 linijek ![]() (kiedys cos kombinowalem, ale przywrocilem pierwotna wersje) Mam tam też plik my.cnf.off ktory zawiera cala konf. O co chodzi znowu ? W każdym razie przywrócenie oryginalnego pliku (ten z .off) nic nie zmieniło :/ |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 17 Dołączył: 4.09.2010 Skąd: far far away Ostrzeżenie: (0%) ![]() ![]() |
Takie pytanie jakie masz zainstalowane distro ? Może to off to pozostałość po jakimś update, ja tez mam kupę plików w stylu /etc/mysql/my.cnf.dpkg-old, ale nvm. Co do nagłówka to wstaw go w miejscu w którym wiesz na pewno, że jeszcze nic nie było wysłane do przeglądarki, bo w innym przypadku możesz zobaczyć miły błąd. my.cnf chyba nie potrzebuje być jakiś olbrzymi, do końca nie wiem, aż tak nie wnikałem w konfigurację mysql, miałem jeszcze problem tylko z gigantycznymi plikami przy tabelach innodb, ale to tez prosto się rozwiązuje.
Po zmianie pliku restartowałeś serwer mysql, bo bez tego raczej nie zauważył nawet zmiany konfiguracji. Ten post edytował masiakla 6.09.2010, 00:29:49 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Najprostsze obejście - olej kodowanie ISO i wystawiaj w UTF8. Przeleć to co dostajesz na wyjściu bufora za mb_convert_encoding()
Drugie obejście Ten post edytował everth 6.09.2010, 00:30:30 -------------------- Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]! |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 30.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście restartowałem mysqla
![]() Chłopaki naprawdę wielkie dzięki za zaangażowanie, nie spodziewałem się :] Trochę mi zajmie sprawdzenie waszych najnowszych porad bo już późna godzina i ledwo patrze na oczy przez to wszystko. W każdym razie my.cnf zamieniłem na konf. którą podaliście, ale też nie zadziałało, bez zmian aarghhh.... Te ostatnie pomysly są ciekawe, może pomogą w wykryciu problemu. Najprostsze obejście - olej kodowanie ISO i wystawiaj w UTF8. Przeleć to co dostajesz na wyjściu bufora za mb_convert_encoding() Ale gdzie to wstawić w index.php po hederze (z latin2) ? Przypominam, że strona ma kodowanie latin2 a nie utf-8 i w tym kodowaniu (wybranym z przeglądarki wszystko smiga) MASIAKLA // Jestem początkujący i nie mam pojęcia czym jest DISTRO ale poszukam w miedzy czasie ... Ten post edytował nitro11 6.09.2010, 00:40:25 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 17 Dołączył: 4.09.2010 Skąd: far far away Ostrzeżenie: (0%) ![]() ![]() |
mam na myśli dystrybucję linuxa. Bo największe problemy miałem z Fedorą, między innymi z tym kodowaniem w nagłówku. Jak jesteś poczatku to pewnie nie dołączasz żadnych zewnętrznych repozytoriów, więc pomogłoby to okreslić na jakich wersjach softu pracujesz.
Ten post edytował masiakla 6.09.2010, 00:46:08 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
@nitro - wstaw to na końcu index.php - czyli tak:
Jeśli gdzieś odwołujesz nie poprzez index.php tylko jakiś inny plik to tam też musisz zrobić to samo. Mb_convert_encoding() jest po to żeby przekodować strumień wyjściowy i puścić go we właściwym kodowaniu - tak jest w teorii. Czy w praktyce ci zadziała to już musisz sprawdzić sam. Ten post edytował everth 6.09.2010, 01:05:52 -------------------- Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]! |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 294 Pomógł: 31 Dołączył: 2.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mi to zawsze pomagało ![]() -------------------- |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 30.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mi to zawsze pomagało ![]() Bez zmian... Zmieniłem index.php na: <
I nic .................. |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wypróbuj ten drugi sposób (z headerem i konwersją ustawioną na iso-8859-2). Pamiętaj że kodowanie w header i meta powinno się zgadzać. Dzisiaj już raczej nic bardziej konstruktywnego nie wymyślę.
-------------------- Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]! |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 294 Pomógł: 31 Dołączył: 2.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mi to zawsze pomagało ![]() A dałeś jako utf8 czy zostawiłeś latin2 ? -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 14:24 |