Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z kodowaniem polskich znakow
krolas
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 5.04.2006

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


Witam.
Wiem ,że problem ten jest bardzo często opisywany tutaj na forum.Szukałem w róznych postach odpowiedzi ale nie pomogły mi one rozwiązać mojego problemu (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Kłopot tkwi w tym ,że zamiast polskich znaków w przeglądarce pojawiają mi się znaki zapytania w pobranych z bazy danych MySQL wyrazach.
Ustawiłem kodowanie na latin2 w pliku konfiguracyjnym my.ini (default-character-set=latin2) i tak samo w pliku php.ini (default_charset = "iso-8859-2").
W kodzie php próbowałem wykorzystać instrukcje SET NAMES i dalej lipa.
Mam za zadanie odczytac w przegladarce dane z tabeli Ksiazki w mojej bazie i wszystko jest ok, tylko te nieszczesne polskie znaki.
Proszę o wsparcie i z góry dzieki.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
</head>
<body>
<?php
if (!$db_lnk =@mysql_connect("localhost","*****","*******")){
echo('Wystąpił błąd podczas połączenia z serwerem mysql...<br>');
exit;
}

if (!@mysql_select_db('test')){
echo('Wystapil blad podczas wyboru bazy danych: test<br>');
@mysql_close();
exit;
}
$query = "SET NAMES 'latin2'";
$query = "SELECT * FROM Ksiazki";

if (!$result = mysql_query($query, $db_lnk)){
echo('Wystapil blad: nieprawidlowe zapytanie...<br>');
@mysql_close();
exit;
}
?>

<table>
<tr>
<td>Id</td>
<td>Tytuł</td>
<td>Rok wydania</td>
<td>Cena</td>
</tr>

<?php
while($row = mysql_fetch_row($result)){
echo("<tr>");
echo("<td>$row[0]</td>");
echo("<td>$row[2]</td>");
echo("<td>$row[4]</td>");
echo("<td>$row[6]</td>");
echo("</tr>");
}
?>

</table>

<?php

if(!@mysql_close()){
echo('Wystapil blad podczaszamykania polaczenia z serwerem MySQL...<br>');
}
?>

</body>
</html>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Zbłąkany
post
Post #2


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

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


Zmień kodowanie apache na iso-8859-2, albo w mysql ustaw metodę porównywania napisów na latin2_general_ci (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
P.S. Proszę o używanie odpowiedniego bbcode (IMG:http://forum.php.pl/style_emoticons/default/angrysmiley.gif) .
Go to the top of the page
+Quote Post
krzysiekk
post
Post #3





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 13.03.2006
Skąd: Jaworze

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


ja stosuje UTF-8 i prawie zawsze działa

  1. <meta http-equiv="Content-Type" content="text/html; CHARSET=UTF-8" />
Go to the top of the page
+Quote Post
cadavre
post
Post #4





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

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


Ja także korzystam w UTF8 na bazach MyISAM.
Kodowanie bazy utf8, porównywanie utf8_general_ci, set names utf8 i meta charset utf8.
Wcześniej jednak korzystałem z właśnie latin2 i również działało poprawnie. Sprawdź dokładnie wykonanie SET NAMES. Spróbuj bez ''. :/

BTW
  1. <?php
  2. (...)
  3. $queryNames = "SET NAMES 'latin2'";
  4. mysql_query($queryNames); //query z set names nie wykonujesz!
  5. $query = "SELECT * FROM Ksiazki";
  6. if (!$result = mysql_query($query, $db_lnk)){
  7. echo('Wystapil blad: nieprawidlowe zapytanie...<br>');
  8. }
  9. (...)
  10. ?>
Tak wygląda kod? Bo jeśli tak to wykonuje query=SELECT a nie SET NAMES

Ten post edytował cadavre 3.08.2006, 20:23:38
Go to the top of the page
+Quote Post
krolas
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 5.04.2006

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


Dzięki za wsparcie.Coś pokombinuje i może sie uda.W końcu dla chcącego nic trudnego (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

Wprowadziłem poprawkę w kodzie:

$queryNames = "SET NAMES 'latin2'";
mysql_query($queryNames);


i zadziałało (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Wielkie dzięki mistrzowie!!!
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Zawsze jak masz problemy z baza to sprawdzaj jak kodowanie ma klient, baza i jakie kodowanie ma fetch.
Go to the top of the page
+Quote Post
Domin
post
Post #7





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 17.11.2004
Skąd: Warszawa

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


Czy ten problem masz na serwerze na własnym kompie czy już po wysłaniu na serwer wykupiony?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Bo ja też miałem kiedyś taki problem, i po przeróżnych próbach znalazłem powód... Problem leżał po stronie dostawcy serwera, na każdym innym które posiadam w innyuch firmach wszystko było dobrze. Niestety dostawca był an tyle nie doświadczony ze nie potrafił naprawić swojego kodowania. Dobrze to sprawdziłęm serwer na okresie próbnym.
Go to the top of the page
+Quote Post
cadavre
post
Post #8





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

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


Cytat(krolas @ 3.08.2006, 22:12 ) *
Wprowadziłem poprawkę w kodzie:
$queryNames = "SET NAMES 'latin2'";
mysql_query($queryNames);

i zadziałało (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Wielkie dzięki mistrzowie!!!
Po prostu zapomniałeś wykonać query dla zmiennej, którą ustawiłeś. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
krolas
post
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 5.04.2006

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


Cytat(Domin @ 4.08.2006, 18:05 ) *
Czy ten problem masz na serwerze na własnym kompie czy już po wysłaniu na serwer wykupiony?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Bo ja też miałem kiedyś taki problem, i po przeróżnych próbach znalazłem powód... Problem leżał po stronie dostawcy serwera, na każdym innym które posiadam w innyuch firmach wszystko było dobrze. Niestety dostawca był an tyle nie doświadczony ze nie potrafił naprawić swojego kodowania. Dobrze to sprawdziłęm serwer na okresie próbnym.

Problem był na własnym kompie ale juz wszystko działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Lompi
post
Post #10





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.08.2006

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


a kto wie jak zmienić kodowanie w bazie danych moze jakis skrypt?
Go to the top of the page
+Quote Post
cadavre
post
Post #11





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

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


W phpMyAdminie to w 5min zrobisz. Zaznaczasz checkboxy, jeden button i done.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 04:46