Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Znaki zapytania zamiast polskich znaków
Forum PHP.pl > Forum > Przedszkole
Hexonex
Witam. Męczę się z tym problemem od kilku tygodni. Przeszukałem chyba wszystko co można było, ale mam problem z wyświetlaniem polskich liter na mojej stronie.
Zacznę od początku jak to było. Miałem stronę na friko.pl (za.pl), ale aby mieć mniej problemów z działaniem strony, przeniosłem ją na proserwer.pl. Wszystko było pięknie do czasu gdy nie zauważyłem, że zamiast polskich liter (oprócz litery "ó") są znaki zapytania.
Przeniesienie bazy danych przebiegło bez problemowo. W samej bazie mam polskie litery, jedynie na stronie nie.
System porównań dla połączenia MySQL: utf8_polish_ci
Kodowanie napisów dla MySQL: UTF-8 Unicode (utf8)
W tabelach Metoda porównywania napisów: utf8_polish_ci.

Próbowałem wielu rozwiązań, najbardziej znany:
Kod
$db_connect = @mysql_connect($db_host, $db_user, $db_pass);
mysql_query("SET NAMES 'utf8'");


Pozmieniał znaki zapytania na jakieś dziwne znaki, jakby Ał -> ą, itp.
Dodam jeszcze, że bez dodania tego wyżej wymienionego kodu, wszystkie posty napisane już po przeniesieniu miały polskie litery, ale z tym kodem już nie.

Proszę o wszelaką pomoc.
Fifi209
Zapoznaj się z podklejonym tematem: Temat: MYSQL Polskie znaki
mortus
Sprawdź kodowanie strony w sekcji HEAD (źródło strony w przeglądarce). Sprawdź również kodowanie samego pliku np. index.php (pobierz przez klienta FTP i otwórz w np. Notepad++, czy PSPad - odpowiednie informacje będą wyświetlone na pasku statusu). Sprawdź jeszcze raz, czy aby na pewno Twoja obecna baza danych jest kodowana w utf-8. W phpMyAdminie lub jakimś zewnętrznym kliencie np. Navicat Lite wpisz
  1. SHOW CREATE DATABASE `nazwa_bazy`
lub
  1. SHOW CREATE TABLE `nazwa_wybranej_tabeli`
Cytat(Hexonex)
Dodam jeszcze, że bez dodania tego wyżej wymienionego kodu, wszystkie posty napisane już po przeniesieniu miały polskie litery, ale z tym kodem już nie.
Czy aby na pewno na poprzednim serwerze baza danych była kodowana w utf-8? Jeśli masz jeszcze pliki z eksportu bazy danych to sprawdź ich zawartość.
Hexonex
mortus, w phpmyadmin, wpisałem
  1. SHOW CREATE TABLE `nazwa_wybranej_tabeli`

(nazwa tabeli to: ep_posts)
i wyskoczyło mi takie coś:
  1. CREATE TABLE `ep_posts` (
  2. `forum_id` smallint(5) UNSIGNED NOT NULL DEFAULT '0',
  3. `thread_id` smallint(5) UNSIGNED NOT NULL DEFAULT '0',
  4. `post_id` smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  5. `post_subject` varchar(100) collate utf8_polish_ci NOT NULL DEFAULT '',
  6. `post_message` text collate utf8_polish_ci NOT NULL,
  7. `post_showsig` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
  8. `post_smileys` tinyint(1) UNSIGNED NOT NULL DEFAULT '1',
  9. `post_author` smallint(5) UNSIGNED NOT NULL DEFAULT '0',
  10. `post_datestamp` int(10) UNSIGNED NOT NULL DEFAULT '0',
  11. `post_ip` varchar(20) collate utf8_polish_ci NOT NULL DEFAULT '0.0.0.0',
  12. `post_edituser` smallint(5) UNSIGNED NOT NULL DEFAULT '0',
  13. `post_edittime` int(10) UNSIGNED NOT NULL DEFAULT '0',
  14. PRIMARY KEY (`post_id`),
  15. KEY `thread_id` (`thread_id`)
  16. ) ENGINE=MyISAM AUTO_INCREMENT=3174 DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci


Sprawdziłem również kodowanie pliku subheader.php (extreme fusion) w Adobe dreamweaver i ma on kodowanie Unicode UTF-8.

Co do tego czy aby na pewno baza jest kodowana w utf-8, umieszczam screena jako dowód, że tak.


Rid
A pododawane są metatagi z kodowaniem na stronach??
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >

Dwa różne serwery i dwie różne konfiguracje.To może być źródłem Pana problemu.
A próbował Pan zainstalować serwer u siebie i puścić czy efekt będzie jednakowy?questionmark.gif
Hexonex
  1. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
, oczywiście że jest.

Co do instalacji serwera - nie wiem jak tego dokonać.

@Edit

Ok. Problem rozwiązany. Pewna osoba podsunęła mi małą podpowiedź i dodałem do pliku subheader.php coś takiego:
  1. mysql_query("SET NAMES 'latin2'");


Niby prosta rzecz. Zawsze wstawiałem UTF, ale nigdy nie pomyślałem o latinie haha.gif

To tyle, temat można zamknąć.
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.