Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MSSQL]Polskie znaki
-Kloc-
post
Post #1





Goście







Może mi ktoś pomóc, bo już naprawdę nie wiem o co chodzi.
Mam jakiś plik php z kodowaniem UTF-8

Kod
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>...</title>
    </head>
    <body>
        HTML:  ą ę ć ń ź ż ó ł ś<br />
<?Php

mysql_connect("localhost", "login", "haslo")or die("Nie można nawiązać połączenia z bazą");
mysql_select_db("baza")or die("Wystąpił błąd podczas wybierania bazy danych");

mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET collation_connection = utf8");


$zapytanie1 = "SELECT * FROM `tabela` ";
$idzzapytanie1 = mysql_query($zapytanie1);
while($pokaz = mysql_fetch_array($idzzapytanie1))
{
$opis = $pokaz['1'];
}

echo "PHP:  ą ę ć ń ź ż ó ł ś <br />
MYSQL: $opis";

?>

    </body>
</html>


Znaki po HTML i PHP wyświetlają się prawidłowo, ale te po MYSQL już nie. W efekcie otrzymuję coś takiego: ± ê æ ñ ¼ ¿ ó ³ 
Gdy usunę to:

Kod
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET collation_connection = utf8");


Mam same krzaki: � � � � � � � � �

Moja baza ma ustawione kodowanie utf8_general_ci, to samo tabela
Macie może jakiś pomysł jak mogę wyświetlić tam polskie znaki?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
viking
post
Post #2





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

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


Zapewne źle zaimportowałeś dane do mysql. Spróbuj jeszcze raz.
http://en.wikipedia.org/wiki/Microsoft_SQL_Server http://en.wikipedia.org/wiki/MySQL odnośnie tagu w temacie
Go to the top of the page
+Quote Post
Turson
post
Post #3





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Ja osobiście radzę wejść w strukturę tabeli i zmienić kodowanie na utf8_polish_ci + http://turson.pl/blog/php/polskie-znaki-w-dokumencie-php i nie ma prawa wystąpić jakiś problem (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
-Kloc-
post
Post #4





Goście







U mnie w pliku php są polskie znaki tylko nie ma tych pobranych z bazy, ale zmieniłem na utf8_polish_ci i efekt jak widać.

(IMG:http://www.iv.pl/images/85517626901025750560_thumb.jpg)
Go to the top of the page
+Quote Post
-Kloc-
post
Post #5





Goście







Tak jak bym po części rozwiązał ten problem. Kodowanie Utf-8 bez BOM i brak:

Kod
<meta charset="UTF-8">



Kod
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET collation_connection = utf8_polish_ci");


Wtedy znaki po php i html zamieniają się na ą ę ć ń Ĺş Ĺź Ăł ł ś, a te z mysql są wyświetlane prawidłowo.
Go to the top of the page
+Quote Post
Qss
post
Post #6





Grupa: Zarejestrowani
Postów: 141
Pomógł: 7
Dołączył: 22.02.2009

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


ostatnio miałem taki sam cyrk z wyświetlaniem jak przeniosłem stronę na serwer okazało się ze na PHP 5.3.x coś nie działało na wyższych zaczęło nagle wyświetlać poprawnie.
najlepsze jest to że w kodzie jako takim wyświetlało krzaki a jak wyświetliłem wartość jako value w inpucie działało ;S
Aha i jak wchodzisz np. do phpmyadnima sprawdzić dane w mysql to rozumiem że tam są polskie znaki a nie krzaczki ?
Go to the top of the page
+Quote Post
-Kloc-
post
Post #7





Goście







W phpmyadmin są takie wygibasy jak na zdjęciu powyżej. A jak chce bezpośrednio wpisać tam ą itp to wyskakuj mi błąd.
Go to the top of the page
+Quote Post
Turson
post
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Jeśli zmieniłeś kodowanie znaków w PhpMyAdmin na utf8_polish_ci to zacznie ono kodować dopiero nowe wpisy, stare nie. Dodaj nowy w tym kodowaniu i powinno być dobrze już.
Jeśli nie zależy Ci na danych w tabeli to najlepiej usuń wszystkie rekordy albo drop tabeli, potem kodowanie na utf8_polish_ci
Go to the top of the page
+Quote Post
Qss
post
Post #9





Grupa: Zarejestrowani
Postów: 141
Pomógł: 7
Dołączył: 22.02.2009

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


prawdopodobnie ze wszystkie pola tekstowe w bazie nie są w kodowaniu utf8_polish_ci tylko pewnie jakimś latin1..
Go to the top of the page
+Quote Post
-Kloc-
post
Post #10





Goście







Cytat(Qss @ 4.11.2013, 11:47:08 ) *
prawdopodobnie ze wszystkie pola tekstowe w bazie nie są w kodowaniu utf8_polish_ci tylko pewnie jakimś latin1..


Zgadza się baza danych na utf8_polish_ci tabela na utf8_polish_ci a pola tekstowe na latiny .
Już wszystko pięknie działa (IMG:style_emoticons/default/biggrin.gif) Dziękuje za pomoc.
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: 26.09.2025 - 15:25