mam problem z konwersja ciagu z utf-8 do iso-8859-2. problem pojawial sie i byl rozwiazywany na tym forum juz nieraz, niestety dotychczasowe rozwiazania ktore przejrzalem niewiele mi pomogly
mam strone html/php ktora deklaruje kodowanie iso-8859-2 poprzez znacznik html <meta>. W przegladarce, opera 11, mam ustawiony wybor kodowania automatyczny. Strona jak wspomnialem generuje tresc dynamiczna, pobiera dane z pliku(ciag tekstowy) za pomoca metody $DOM->loadHTMLFile(), przetwarza je za pomoca kilku innych metod i jednoczesnie wyswietla(przez echo()) i wkleja do nowego pliku. Jako ze strona ma w <meta> iso dane powinny sie wyswietlac z takim kodowaniem, bez wzgledu na kodowanie wejsciowe.
Czesc przetworzonych danych wyswietla sie prawidlowo w iso mimo ze kodowanie wejsciowe to utf-8, nawet bez uzycia iconv() czy mb_convert_encoding(). Wiem ze kodowanie wejsciowe to wlasnie utf-8, bo przed samym wyswietleniem wstawilem kod z mb_detect_encoding().
Niestety czesc ktora jest przetwarzana pozniej i wczytywana z innego pliku(caly plik w postaci ciagu) wyswietla sie z 'krzakami' - (np. r?

Kod
// wykryj kodowanie
$encoding = $page->detect_encoding( $pagestr, __LINE__ ); // moja funkcja oparta o mb_detect_encoding()
$list_encodings_arr = mb_list_encodings();
sort($list_encodings_arr);
$to_encoding = $list_encodings_arr[24]; // iso-8859-2
echo 'Kodowanie docelowe: '.$to_encoding.'<br /><br />';
// konwertuj
$pagestr = mb_convert_encoding($pagestr, $to_encoding, $encoding );
// zapisz przekonwertowany ciag do pliku
file_put_contents( 'html_output.txt', $pagestr );
// wyswietl ciag i zatrzymaj
die( htmlspecialchars($pagestr) );
$encoding = $page->detect_encoding( $pagestr, __LINE__ ); // moja funkcja oparta o mb_detect_encoding()
$list_encodings_arr = mb_list_encodings();
sort($list_encodings_arr);
$to_encoding = $list_encodings_arr[24]; // iso-8859-2
echo 'Kodowanie docelowe: '.$to_encoding.'<br /><br />';
// konwertuj
$pagestr = mb_convert_encoding($pagestr, $to_encoding, $encoding );
// zapisz przekonwertowany ciag do pliku
file_put_contents( 'html_output.txt', $pagestr );
// wyswietl ciag i zatrzymaj
die( htmlspecialchars($pagestr) );
Z tego co sprawdzilem wszystkie pliki sa zapisane w iso-8859-2, chyba ze ktorys przeoczylem.
Jak dam rade dodam linki do pliku wejsciowego ktory jest poddawany obrobce i sprawia problemy i pliku wynikowego.
Czesc pliku wynikowego:
Kod
<html><head><title>Instalacja Code Igniter na serwerach w sieci</title><meta content="Instalacja CI na zwyk?‚ych serwerach dostÄ™pnych w sieci niewiele r?
?ni siÄ™ od instalacji na naszym lokalnym serwerze."

co zrobic z ta druga czescia kodu zeby wyswietlala sie prawidlowo, da sie jakos zmusic mb_convert_encoding by przekonwertowal ciag?
jest ktos w stanie pomoc?
dodaje linki:
plik wejsciowy -
http://chomikuj.pl/masgeo44/Dokumenty/inst...1766457503.html
plik wyjsciowy zawierajacy skonwertowany ciag -
http://chomikuj.pl/masgeo44/Dokumenty/html...,1766457501.txt
pozdrawiam