Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kodowanie: mysql-latin1, strona-utf8
Forum PHP.pl > Forum > Bazy danych > MySQL
tomkoz
Witajcie
Przeszukałem 9 stron wyników 'kodowanie' na forum i nie znalazłem rozwiązania. sad.gif
Po ręczym ustawieniu kodowania znaków w przeglądarce na:
- utf8 (automatycznie też) wpisy na stronie wyświetlają się ok, wpisy z bazy - krzaczki
- iso8859-2 wpisy z bazy ok, ale krzaczki na wpisach strony

Dane w bazie (tylko do odczytu) są umieszczone w

character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8

Strona :
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


wyniki bez jakiejkolwiek edycji:
Cytat
cz�steczek bia�ek w��knistych

po zastosowaniu:
mysql_query('SET CHARACTER SET utf8');
Cytat
cz±steczek bia³ek w³óknistych

macie jakiś pomysł jak konwertować ? mi przychodzi juz tylko do głowy edytowanie stringu.
artega
Przeczytaj dokładnie ten temat.
tomkoz
Baza tylko do odczytu, dlatego nie moge edytować zawartości tabeli.

  1. <html>
  2. <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
  3. <body>
  4. szeleść żółw - tu są polskie litery zapisane w utf8, są wyświetlane prawidłowo<br><br>
  5.  
  6. <?php
  7. $polaczenie=mysql_connect ("localhost","","");
  8. mysql_query("SET CHARACTER SET 'utf8'");
  9. mysql_query("SET NAMES 'utf8'");
  10.  
  11. $zapytanie = "SELECT CONVERT (Zadanie USING utf8) AS Zadanie FROM sprawozdanie";
  12. $wykonaj = mysql_query ($zapytanie);
  13.  
  14. while($wiersz=mysql_fetch_array ($wykonaj)) {
  15. echo '<li>'.$wiersz['Zadanie'];
  16. }
  17.  
  18. mysql_close($polaczenie)
  19. ?>
  20. </body></html>


Kombinowałem na różne sposoby, niestety bez efektów. Czy gdzieś jest błąd ?
artega
Upewnij się, że połączenie z bazą jest ustawione w ten sposób
  1. <?php
  2. $polaczenie=mysql_connect("localhost","root","");
  3.  
  4. if (!$polaczenie)
  5. {
  6. }
  7.  
  8. if (!mysql_select_db("baza"))
  9. {
  10. }
  11. ?>

Ewentualne błędy popraw i po sprawie.
tomkoz
dzięki @artega za pomoc, ale oporna ta moja baza na konwertowanie, jak nie po dobroci to siłą zmieniłem litery:

  1. <?php
  2. function konwertuj($string)
  3. {
  4. $zle = array('/ł/','/ę/', '/ś/', '/ż/', '/ą/', '/ń/', '/Ś/', '/ć/', '/ź/');
  5. $dobrze  = array('ł', 'ę', 'ś', 'ż', 'ą', 'ń', 'Ś', 'ć', 'ź');
  6. $poprawione = preg_replace( $zle, $dobrze, $string );
  7. return $poprawione;
  8. }
  9. ?>


pozdrawiam
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-2024 Invision Power Services, Inc.