Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Kodowanie dziwna sprawa
Forum PHP.pl > Forum > Przedszkole
tofik1778983
Witam..
Pisałem o tym kiedy¶ na innym forum ale nikt nawet nie odpowiedział więc może wy co¶ powiecie na temat.

Miałem kiedy¶ problem z przeniesieniem bazy danych na inny serwer.. (gra via www mmo)
B±dĽ co b±dĽ pomogło jedynie edytowanie pliku bazy danych i ręcznie w notepad++ zmieniałem wszystkie krzaki w bazie na polskie litery.. (pół nocy poszło)
Teraz tak ja u siebie nie mam ani jednego krzaka nigdzie!! Moja dziewczyna u siebie też, wchodziłem przez kilka bramek proxy nie ma krzaków, przez tora nie ma. Sprawdzałem w ff, operze, netscape, ie, chrome, nigdzie nie mam krzaków..(sprawdzałem tak tez u dziewczyny) teraz niektórzy gracze (50/50) skarż± się że nie ma polskich liter tylko 'krzaczki' albo zaraz po polskiej literce jest '?' albo iny krzaczek. Widziałem to jedynie na zrzucie ekranu.
Czemu jedni maja krzaki zamiast polskich liter a inni nie questionmark.gif
Jak dostane zrzuty ekranu od graczy mogę potem wrzucić dla potwierdzenia.
Np jeden z graczy ma tak:

link do zrzutu
poli25
ale wy¶wietla znaki może niech sobie gracze w przegl±darkach ustawi± kodowanie na automatyczne może?? Ewentualnie możesz na stronie umie¶cić aby przegladarki ustawić na kodowanie takie jakie masz u siebie winksmiley.jpg
p.s. ciekawe czy to nie wina edytorów tekstowych moze zmieniałe¶ kodowania i dziwne znaki zostały w skrypcie questionmark.gif
tofik1778983
Edytowałem za pomoc± notepad++ z ustawionym kodowaniem utf8 bez BOM
amii
Też mam ten problem kodowanie mam ustawione w bazie na utf-8 w pliku na utf8. U mnie na serwerze działa wszystko OK a kiedy przeniosę gdzie indziej i zedytuje w notepad++ i wgram na nowy serwer strona krzaczy się tak ja u Ciebie.
Być może jest to wina edytora, będę to sprawdzał i jakby co dam znać.

No i problem rozwi±zany smile.gif przynajmniej u minie. Oto co zrobiłem:
1. W notepad++ zaznaczasz wszystko, następnie plik->kodowanie->utf8, zapisujesz i tak dla wszystkich plików
2. W poł±czeniu z baz± ustawiasz (tu podaje przykład dla kodowania utf8):
  1. function connect_to_db() {
  2. $db = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS)
  3. or die ('Nie moge sie polaczyc z baza danych: ' . mysql_error());
  4.  
  5. mysql_select_db(SQL_DB)
  6. or die('Nie moga wybrac bazy danych wystapil blad: ' . mysql_error());
  7.  
  8. mysql_query("SET NAMES 'utf8'");
  9.  
  10. mysql_query('SET character_set_connection=utf8');
  11. mysql_query('SET character_set_client=utf8');
  12. mysql_query('SET character_set_results=utf8');
  13. }

3. W pliku ustawiasz:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
4. Ja musiałem jeszcze zmienić strukturę dla wyrażenia preg_replace
z
  1. $wyr = "/([^(\p{L}0-9'-=\"\')])". $tabliczka[$g] ."([^(\p{L}0-9'-=\'\")])/i";

na
  1. $wyr = "/([^(A-Za-z±ę¶ńćżżłóˇĘ¦ŃĆ¬ŻŁÓ0-9'-=\"\')])". $tabliczka[$g] ."([^(A-Za-z±ę¶ńćżżłóˇĘ¦ŃĆ¬ŻŁÓ0-9'-=\'\")])/i";
tofik1778983
Prosze o wyrozumialosc wysiadl mi alt na klawiaturze ;/

Ja pisalem ze chodzi o baze danych..
Przy przenoszeniu w zaden sposob nie dzialal o mi kodowanie, wiec notepadem edytowalem plik bazy i zmianialem wszystkie polskie krzaczory.
Zaimportowalem baze wszystko pieknie ladnie.
Na stronie nie ma zadnych krzakow. Maja je niektore osoby ale tylko w danych ktore leca z bazy.
Najdziwniejsze jest to ze ja sprawdzalem pod kilkoma przegladarkami u sieibe i wszystko bylo wyswietlane dobrze. Ale niektore osoby na swoich kompach maja krzaki a inne nie.. jakby mialy jakis inny jezyk wybrany w przegladarkach.. glownie wyswietla takie kwadraciki po kazdej polskiej literze jak w zalaczonym wczesniej zrzucie.
Kodowania w bazie, na stronie i przy polaczeniach mam dobrze bo by wszystkim te krzaki wyswietlalo..
Sprawdzalem u kumpli, u dziewczyny na roznych kompach u roznych osob i tylko na jednym zauwazylem te krzaki na innych wszystko bylo dobrze.. ale trafiaja sie wyjatki.
Czemu tak sie moze dziac questionmark.gif
poli25
a jakiej bazy uzywasz? jelsi mysql to skopiuj sobie z postu który przesłał Ci amii:


mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');


jesli postgresqla to:

$connect =pg_connect("host=localhost dbname=baza
user=uzytkownik password=haslo");
pg_set_client_encoding($connect, "utf8");
tofik1778983
To już mam dawno poustawiane. Baza MySql
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.