Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z iconv()
Forum PHP.pl > Forum > Przedszkole
Ivellios
Mój problem wygląda następująco:

Mam stronę zintegrowaną z phpBB3. Strona ma kodowanie ISO-8859-2, natomiast forum UTF-8.

Na stronie utworzyłem niedawno system quizów, a jak to w systemach quizów bywa, mile widziana tabelka z wynikami userów tongue.gif

http://www.paranormalium.pl/index.php?akcj...&qa=results

Zmienna zawierająca nazwę usera wygląda tak:
  1. $juzyrnejm = $row['username'];
  2. $juzyrnejm = iconv("UTF-8", "ISO-8859-2", $juzyrnejm);

Niestety, występuje problem z polskimi znakami - iconv() nie konwertuje polskich liter. Efekt - na liście z wynikami wyskakują krzaczki typu "ma?y".

Czy da się coś na to poradzić?
cojack
Sprawdzaj kodowanie w jakim user wysyła dane. Być może tu leży pies pogrzebany.
Ivellios
Tzn phpBB używa kodowania UTF-8 i w takim kodowaniu teoretycznie zapisuje rekordy w bazie danych. Dziwi mnie jednak to, że po przełączeniu w przeglądarce na kodowanie UTF-8 krzaki wciąż się pojawiają :/ Zamiast "mały" wciąż wyskakuje "ma?y"...
Pilsener
Gdzieś się knoci:
- dane trafiają do bazy w złym kodowaniu
- baza ma złe kodowanie
- złe kodowanie jest wybrane przy połączeniu
- złe kodowanie jest w nagłówkach strony

Użyj funkcji typu:
http://pl2.php.net/manual/pl/function.mb-detect-encoding.php

By rozpoznać kodowanie źródłowe swoich krzaków. Potem sprawdź, skąd się to bierze, należy zlikwidować przyczynę a nie jedynie zamaskować skutek.
Ivellios
Użyłem podanej funkcji i wyświetliło tylko ASCII.
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.