Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [GD]imagecreatefromstring a polskie znaki
Forum PHP.pl > Forum > PHP
igiko
Witam
Stworzyłem sobie prosty skrypcik, który nakłada tekst pobrany metodą GET funkcją imagecreatefromstring na obrazek.
  1. <?php
  2. $tekst = $_GET["tekst"];
  3. header("Content-type: image/png");
  4. $obraz = ImageCreateFromJpeg('wazny_news.jpg');
  5. $bialy = ImageColorAllocate($obraz, 255, 255, 255);
  6. ImageTTFText($obraz, 17, 0, 40, 26, $bialy, "calibri.ttf",$tekst);
  7. ImagePNG($obraz);
  8. ImageDestroy($obraz);
  9. ?>
Jeżeli chcę wygenerować obrazek poprzez wpisanie jego adresu w przeglądarce:
Kod
menu.php?tekst=Pierwszy sparing zwycięski

polskie znaki są dobrze wyświetlane. Problem występuje jednak gdy ten obrazek jest częścią layoutu i treść jego jest pobierana z MySQL. Fragment kodu.
  1. <?php
  2. while($r = mysql_fetch_array($result)) {
  3. $title = $r['title'];
  4. $title = stripslashes($title);
  5. echo '<img src="menu.php?tekst='.$title.'" alt="obrazek">';
  6. ?>

Wtedy polskich znaków już nie ma, tworzą się krzaczki, a kiedy chcę podejrzeć adres obrazka wyskakuje mi:
Kod
menu.php?tekst=Pierwszy%20sparing%20zwyci%EAski

Dodam jeszcze, że strona jest kodowana w iso-8859-2, mysql ma zaś metodę porównywania napisów latin1_swedish_ci
Pozdrawiam
Z góry dziękuje za pomoc.
erix
szukajka: mysql kodowanie
igiko
Przejrzałem tematy w wyszukiwarce i nie znalazłem nic co mogłoby mi pomóc. Zapomniałem dodać, że wszystko inne generowane z MySQL wyświetla dobrze polskie znaki, problem jest tylko w przypadku grafik generowanych przez GD.
maly_swd
1. Zobacz w jakim kodowaniu masz baze danych
2. w jakim kodowaniu dziala GD
3. uzyj http://pl2.php.net/manual/en/function.iconv.php do zmiany kodowania z bazy na kodowanie jakie lapie GD
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.