Skocz do zawartości

Zdjęcie
* * * * * 1 głosy

MySQL- pytajniki zamiast znaków dialektycznych


Najlepsza odpowiedź unbreak, 09 maja 2014 - 15:18

Daj zaraz po @link:

mysql_query("SET NAMES 'utf8'");

Czy w tym dokumencie w head masz:

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

?

Przejdź do postu


6 odpowiedzi w tym temacie
  • Zaloguj się, aby dodać odpowiedź
Michał

    Stary wyjadacz

  • 301 postów
    • Czas spędzony online: 16d 7h 11m 3s
95
Znakomita!

Napisano 09 maja 2014 - 14:45

#1

Załóżmy, że mam taki oto kod. Niestety wypluwa na wyjściu pytajniki w miejscu polskich znaków.

<?php


header('Content-Type: text/html; charset=utf-8');


$a= $_GET['a'];


$link = @mysqli_connect("127.0.0.1","root","","ee");


$query = "SELECT `id`, `title` FROM `topics` WHERE url='$a'";


$result = mysqli_query($link, $query);


while ($row = mysqli_fetch_array($result)) {
    echo $row[0] . ': ' . $row[1];
    echo '<br />';
}


mysqli_free_result($result);


mysqli_close($link);


?>

Metoda porównywania napisów ustawiona na utf8_general_ci, wysyłany jest nagłówek kodowania utf-8, a mimo wszystko wypluwa pytajniki.


  • 0

unbreak

    WT Elite

  • 1 937 postów
    • Czas spędzony online: 27d 8h 43m 36s
506
Znakomita!
  • Location/home/unbreak

Napisano 09 maja 2014 - 15:18   Najlepsza odpowiedź

#2

Daj zaraz po @link:

mysql_query("SET NAMES 'utf8'");

Czy w tym dokumencie w head masz:

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

?


  • 1

webDeveloper


Michał

    Stary wyjadacz

  • 301 postów
    • Czas spędzony online: 16d 7h 11m 3s
95
Znakomita!

Napisano 09 maja 2014 - 15:44

#3

Próbowałem, ale nie pomaga.

Pewnie to nic nie zmieni, ale spróbuje przepisać to na styl obiektowy.


  • 0

unbreak

    WT Elite

  • 1 937 postów
    • Czas spędzony online: 27d 8h 43m 36s
506
Znakomita!
  • Location/home/unbreak

Napisano 09 maja 2014 - 15:49

#4

Sprawdź czy baza, tabela oraz określone pola w bazie mają utf8_general_ci.


  • 1

webDeveloper


Michał

    Stary wyjadacz

  • 301 postów
    • Czas spędzony online: 16d 7h 11m 3s
95
Znakomita!

Napisano 09 maja 2014 - 16:05

#5

Tak- wszystkie tekstowe kolumny, jak i baza jest ustawione na utf8_general_ci.

W phpMyAdmin wszystkie pola wyświetlają się poprawnie.


  • 0

unbreak

    WT Elite

  • 1 937 postów
    • Czas spędzony online: 27d 8h 43m 36s
506
Znakomita!
  • Location/home/unbreak

Napisano 09 maja 2014 - 16:26

#6

No to sprawdź czy plik php ma poprawne kodowanie.

Upewnij się że w head masz:

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

  • 1

webDeveloper


Michał

    Stary wyjadacz

  • 301 postów
    • Czas spędzony online: 16d 7h 11m 3s
95
Znakomita!

Napisano 09 maja 2014 - 16:52

#7

Znacznika <meta> nie mam, deklaracja kodowania jest w nagłówku HTTP, ale popełniłem drobny błąd w kodzie przy dodawaniu SET NAMES .

Poprawiłem i wszystko działa poprawnie.  :)


  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych