czerpakzmiedzi
14.10.2009, 12:28:29
Wiem że było sporo o kodowaniu ale nigdzie nie znalazłem rozwiązania. Pobieram treść strony a zamiast polskich znaków widzę krzaczki. Nie pomaga ustawienie kodowania strony nie pomaga to
http://www.elider.pl/?nr=329, nie pomaga też htmlentites etc. Co jeszcze mogę zrobić?
jmail
14.10.2009, 12:49:32
czerpakzmiedzi
14.10.2009, 13:40:09
Dzięki za odpowiedź. Niestety już to próbowałem.
Przy
Kod
iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text)
wypisuje słowa w bardzo dziwny sposób. Niektóre znaki są ok a inne nie . Np. ć wyświetla się jako 'c (ogonek jest jakby oddzielnym znakiem)
a przy
Kod
iconv("UTF-8", "ISO-8859-1//IGNORE", $text)
po prostu wyrzuca wyrazy bez znaków np. aśdćdć jako add
jmail
14.10.2009, 13:55:09
a jak Ty chcesz polskie znaki w kodowaniu ISO-8859-1 wyświetlić oO przecież to jest kodowanie lacińskie bez znaków - znaczy angielski oO
spróbuj tak
//rozpoznajemy jakie kodowanie ma wprowadzony string
$enc_in = mb_detect_encoding($string_wejsciowy,"UTF-8, ISO-8859-2, ISO-8859-1");
//sprawdzamy czy da się przekonwertować na UTF-8
$enc = iconv($enc_in,"UTF-8",$string_wejsciowy);
//i jeżeli da się to mamy
if($enc!=false)$string_wejsciowy=$enc;
czerpakzmiedzi
14.10.2009, 14:45:14
Dzięki, pomogło, ale teraz mam problem z zapisem tego do bazy. Po przeczytaniu artykułu na wortalu zrobiłem tak: podczas podłączania do mysql wysyłam "SET NAMES 'latin2'", tabela jest latin2, latin_general_ci, a mimo to zamiast polkich znaków mam krzaczki.
Pobieram file_get_contents i wyświetlam na stronie: OK
Zapisuję do bazy: W bazie zapisuje się źle
Pobieram z bazy: Wyświetla się źle
jmail
14.10.2009, 14:55:34
zamień latin2 na utf-8 będzie działało
czerpakzmiedzi
14.10.2009, 15:07:54
Zmieniłem tabele na UTF-8, UTF_polish_ci, do tego wysyłam przy każdym połączeniu UTF-8 i zmieniłem w META kodowanie na UTF-8. I wsyzstko byłoby ok gdyby nie to że cały tekst na mojej stronie, który nie pochodzi z bazy tylko jest statyczny zamienił się w krzaczki. Ten z bazy wyświetla się poprawnie tak jak mówiłeś.
Czy da się to zrobić tak żeby nie zmieniać kodowania w meta i jednocześnie wyswietlać poprawnie text z bazy?
Myślałem o konwersji z UTF8 do ISO-8859-2 wszystkiego co zapisuje się do bazy. Czy to dobry pomysł?
jmail
14.10.2009, 15:09:34
jakiego edytora plików używasz?
czerpakzmiedzi
14.10.2009, 15:11:00
NetBeans mogę tam wpisać dowolne kodowanie. Aktualnie mam to ISO-8859-2
jmail
14.10.2009, 15:12:48
rewelacja. użyj kodowanie UTF-8 dla wszystkich plików i je przekonwertuj do tego kodowania. Najlepszy z możliwych sposobów. Wszystkie pliki muszą się zmienić w UTF-8 wtedy problem ze statycznycm tekstem zniknie
czerpakzmiedzi
14.10.2009, 15:19:55
Kurcze ze statycznym znikł. Ale teraz spróbowałem inną stronę do bazy załadować, która ma ISO-8859-2 no i nie idzie ;/
jmail
14.10.2009, 15:26:00
cały projekt przekonwertuj na UTF-8 pisałem wcześniej. unikniesz problemów. I nie używaj innego kodowania - nie jest Ci potrzebne
czerpakzmiedzi
14.10.2009, 15:28:46
Przekonwertowałem cały projekt do UTF-8 i wszystko wyświetla sie poprawnie. Ale teraz chciałbym pobrać kolejną stronę za pomocą file_get_contents(). Niestety ów strona ma kodowanie ISO-8859-2.
jmail
14.10.2009, 15:32:33
no to znowu wykorzystaj to - teraz zawartość strony przekonwertuj

//rozpoznajemy jakie kodowanie ma wprowadzony string
$enc_in = mb_detect_encoding($zawartosc_strony,"UTF-8, ISO-8859-2, ISO-8859-1");
//sprawdzamy czy da się przekonwertować na UTF-8
$enc = iconv($enc_in,"UTF-8",$zawartosc_strony);
//i jeżeli da się to mamy
if($enc!=false)$string_wejsciowy=$enc;
czerpakzmiedzi
14.10.2009, 15:38:32
Jesteś Wielki stary. Dzięki że wytrwałeś

Daje Ci pomógł za każdy post.
jmail
14.10.2009, 15:42:22
jak coś jeszcze będziesz miał to wal jak w dym
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.