Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Brak polskich znaków przy odczytywaniu z mysqla
Forum PHP.pl > Forum > Przedszkole
jackal777
Witam,
mam w bazie danych mysql tabele któa jest kodowana utf8_general_ci, kolumna w ten tabeli też jest kodowana utf8_general_ci a w tej kolumnie mam polskie znaki które w bazie są wyświetlane dobrze, jednak na stronie wyświetlają się znaczki zapytania w czarnych kwadracikach, na stronie w nagłówku jest "<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />" jak naprawić żeby na stronie poprawnie odczytywał z BD questionmark.gif

Info z php My Admin

Serwer: 322.m.tld.pl via TCP/IP
Wersja serwera: 5.1.57-5.1.57+tld2-log
Wersja protokołu: 10
Użytkownik: admin322_rowery@5E980202.static.tld.pl
Kodowanie napisów dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQL: UTF8_general_ci

Rysh
Pokaż swoje połączenie z baza.
MGraphics
Może dokument przekonwertuj na UTF-8 bez BOM
jackal777
  1. // POLACZENIE Z BAZA DANYCH
  2. function dbConnect() {
  3. @ $dbConnection = new mysqli('localhost', 'admin', 'admin', 'cms');
  4. if(mysqli_connect_errno()) {
  5. throw new Exception('Blad : Polaczenie z baza nie powiodlo sie.');
  6. } else {
  7. return $dbConnection;
  8. }
  9. }



index.php i functions.php zapisałem przez notepad++ jako UTF8 BEZ BOM
Rysh
mysqli_set_charset
Rysh
Nie tak. I schowaj hasło. A najlepiej to je zmień już nawet na inne.
jackal777
  1. <?php
  2. // POLACZENIE Z BAZA DANYCH
  3. function dbConnect() {
  4. @ $dbConnection = new mysqli('host', 'baza', 'haslo', 'login');
  5. if(mysqli_connect_errno()) {
  6. throw new Exception('Blad : Polaczenie z baza nie powiodlo sie.');
  7. } else {
  8. return $dbConnection;
  9. }
  10. if (!$dbConnection->set_charset("utf8")) {
  11. printf("Error loading character set utf8: %s\n", $dbConnection->error);
  12. } else {
  13. printf("Current character set: %s\n", $dbConnection->character_set_name());
  14. }
  15. }

Ale wtopa, dzieki za info z hasłem, już poprawiłęm tak jak radziłeś to hasło. A odnośnie tego kodu powyżej to zrobiłem analogicznie do tego co było w manualu.

  1. <?php
  2. $mysqli = new mysqli("localhost", "my_user", "my_password", "test");
  3.  
  4. /* check connection */
  5. if (mysqli_connect_errno()) {
  6. printf("Connect failed: %s\n", mysqli_connect_error());
  7. exit();
  8. }
  9.  
  10. /* change character set to utf8 */
  11. if (!$mysqli->set_charset("utf8")) {
  12. printf("Error loading character set utf8: %s\n", $mysqli->error);
  13. } else {
  14. printf("Current character set: %s\n", $mysqli->character_set_name());
  15. }
  16.  
  17. $mysqli->close();
  18. ?>

Czemu jest nadal nie tak questionmark.gif
MGraphics
Podrzuć jakiegoś linka.

I spróbuj pozmieniać w bazie na utf8-polish-ci

Sprawdz jeszcze strone prawym -> pokaż informacje o stronie czy aby napewno tam masz utf8

I jeszcze jeżeli masz FF widok -> zestaw znaków -> UTF8 ( jeżeli takiego nie masz )
jackal777
http://www.sklep.roweryolsztyn.com/index.php?content=3

Gdy klikamy z lewej strony na kategorie rowery, ona sie rozwija na podkategorie i tam brak jest polskich znaków.
Rysh
Cytat(jackal777 @ 13.03.2012, 14:41:24 ) *
  1. <?php
  2. // POLACZENIE Z BAZA DANYCH
  3. function dbConnect() {
  4. @ $dbConnection = new mysqli('host', 'baza', 'haslo', 'login');
  5. if(mysqli_connect_errno()) {
  6. throw new Exception('Blad : Polaczenie z baza nie powiodlo sie.');
  7. } else {
  8. return $dbConnection;
  9. }
  10. if (!$dbConnection->set_charset("utf8")) {
  11. printf("Error loading character set utf8: %s\n", $dbConnection->error);
  12. } else {
  13. zkoleprintf("Current character set: %s\n", $dbConnection->character_set_name());
  14. }
  15. }

Czemu jest nadal nie tak questionmark.gif

return - przetłumaczone przez google translator:
Jeśli wywołana z wnętrza funkcji, return () oświadczenie natychmiast kończy wykonywanie bieżącej funkcji i zwraca swój argument jako wartość wywołania funkcji. return () zakańcza również wykonywanie instrukcji eval () oświadczenia lub skryptu.

Popraw swoją funkcję.
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.