Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySql] Problem z kodowaniem znaków.
Forum PHP.pl > Forum > Przedszkole
mariusz g
mam poniższy kod aw nik kodowanie charset=iso-8859-2

W phpMyAdmin dla pola "opis" Metoda porównywania napisów - nie wiem co mam tam ustawić aby było prawidłowo wyświetlana na stronie i w phpmyadmin. Bo niema tam charset=iso-8859-2.



  1. <html>
  2. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  3. <head>
  4. </head>
  5. <body>
  6. <?
  7. if($_POST["opis"]){
  8. if (mysql_connect('localhost','root','') and mysql_select_db('polskie_znaki')) {
  9.  
  10. $zapytanie = "INSERT INTO tabela SET opis = '".$_POST["opis"]."'";
  11. $wykonaj = mysql_query ($zapytanie); 
  12.  
  13.  }
  14.  
  15. }
  16.  
  17. if (mysql_connect('localhost','root','') and mysql_select_db('polskie_znaki')) {
  18.  
  19.  $zapytanie = "SELECT * FROM tabela";
  20.  $wykonaj = mysql_query ($zapytanie);
  21.  while($wiersz=mysql_fetch_array ($wykonaj)) {
  22.  echo $wiersz['opis']."<br />";
  23. }
  24. }
  25. ?>
  26.  
  27.  
  28. <form action="index.php" method="post" enctype="multipart/form-data">
  29. <input type="text" name="opis" />
  30. <input type="submit" />
  31. </form>
  32.  
  33. </body>
  34. </html>
b4x
  1. <?php
  2. mysql_query("SET NAMES 'latin2'");
  3. ?>

- przy wybieraniu bazy :-) (spróbuj.)
franki01
Kodowanie iso-8859-2 w MySQL'u występuje jako latin2_general_ci. Zmień w tabelach na takie. Tuż po nawiązaniu połączenia z bazą danych (przez mysql_connect()), wyślij do niej takie zapytanie:

  1. SET NAMES latin2


I po tym nie powinno być żadnych problemów.
webdice
Cytat(franki01 @ 4.05.2008, 16:02:15 ) *
Kodowanie iso-8859-2 w MySQL'u występuje jako latin2_general_ci. (...)


latin2_general_ci to jest motoda porównywania napisów,a nie kodowanie.
mariusz g
dzięki za odpowiedz

jeśli dodam przy dodawaniu do bazy i wybieraniu

  1. <?php
  2. mysql_query("SET NAMES 'latin2'");
  3. ?>


Czy to znaczy ze jeśli będę miał serwis z 20 zapytaniami to wszędzie muszę to zmienić ?
Analizowałem inne przykładowe kody stron i tam nic takiego nie ma.
b4x
Przeważnie serwery mają domyślnie ustawiony utf 8 (wg. mnie najlepsze kodowanie biggrin.gif)

Wystarczy że przy wybieraniu bazy wrzucisz ten kod :-) (czyli przy łączeniu się z nią.)

Czyli np.

  1. <?php
  2. function connect($u, $p, $db, $s) {
  3.  
  4. $connect = mysql_connect($s, $u, $p); 
  5. mysql_select_db($db, $connect) or die("DB Error");
  6. mysql_query("SET NAMES 'latin2'");
  7.  
  8. }
  9. ?>


Ostatnio na localu miałem problemy z kodowaniem - i to mi pomogło smile.gif
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.