Lejto
5.03.2009, 15:11:24
Napisałem kod który pobiera dane z pewnej strony wszystko jest ok tylko że na stronie z której pobieram dane jest zwalone kodowanie "krzaczki są".
Czy mogę zmienić kodowanie z poziomu mojego skryptu?
Pozdrawiam
wookieb
5.03.2009, 15:18:17
Lejto
5.03.2009, 15:43:10
ok tylko teraz jaki zestaw znaków, na stronie z której pobieram jest:
Kod
<meta http-equiv="Content-Type" content="text/html;>charset=ISO-8859-2" />
u mnie jest utf-8
i w
iconv(); mam
<?php
echo iconv
("ISO-8859-2","UTF-8", $pokaz[0
]); ?>
i jest trochę lepiej
wookieb
5.03.2009, 16:35:30
A może sprecyzujesz sformułowanie "trochę lepiej"?
Lejto
6.03.2009, 13:41:35
ę, ń działa nie działa ś
to co robię źle?
hallo

nie da się w tym nic zrobić?
wookieb
6.03.2009, 13:42:01
Zapodaj kod wszystkiego co tam masz.
Lejto
6.03.2009, 13:50:11
proszę bardzo:
<?php
$ch = curl_init("http://gimnowe.pl/index.php?option=com_content&task=view&id=149&Itemid=83");
curl_setopt($ch, CURLOPT_USERAGENT, "Internet Explorer");
curl_exec($ch);
curl_close($ch);
preg_match("/<tbody><tr><td>(.*?)</td></tr>/is", $str, $byname); preg_match_all("/<tbody><tr><td>(.*?)</td></tr>/is",$byname[0
], $data_z);
$url = 'http://gimnowe.pl/index.php?option=com_content&task=view&id=149&Itemid=83';
preg_match('#<td class="contentheading" width="100%">(.*?)</td>#si', $za, $tyt);
for($i = 0; $i < count ($data_z[1
]); $i++) {
$zmiana = $data_z[1][$i];
$data []= array($zmiana); }
foreach ($data as $pokaz)
{
echo iconv
("ISO-8859-2","UTF-8", $pokaz[0
]); }
?>
wookieb
6.03.2009, 13:58:18
Ech... Wystarczyło wejść na tą stronę i zobaczyć ze kodowanie jest zwalone. Ale widać jak mało ludzi wie o takiej opcji w przeglądarce (zestaw znaków). Zmien sobie na Windows-1250 (takie też ustaw w kodowaniu źródłowym iconv) i zobaczysz efekt.
Daj jeszcze iconv na tytuł...
Poza tym zastosowanie ob_start jest troche na okretke. Wystarczy dodac do curla opcje RETURNTRANSFER -> wiecej info w manualu
Lejto
6.03.2009, 14:44:54
wiem że jest kodowanie zwalone na tej stronie zobaczę z windows-1250
ok zrobiłem tak:
<?php
echo iconv
("windows-1250","ISO-8859-2", $tyt[0
]); ?>
i działa
ale jeszcze gdy przepuszczam to przez ajaxa i index.html to kodowanie znów się zwana a mam kodowanie ISO-8859-2 ;/
wookieb
6.03.2009, 14:45:58
A sprawdź kodowanie swojego pliku php i kodowanie strony na ktorej to pokazujesz.
Mephistofeles
6.03.2009, 20:39:35
AJAX domyślnie bierze UTF-8. Może to jest powodem.
Lejto
7.03.2009, 10:24:38
wszędzie dałem UTF-8 i działa jak powinno

a jest możliwość żeby przejść w ajaxsie na ISO-8859-2?
Mephistofeles
7.03.2009, 11:25:44
A stosujesz jakąś bibliotekę, czy goły XMLHttpRequest?
Lejto
7.03.2009, 11:27:41
goły XMLHttpRequest bez biblioteki
Mephistofeles
7.03.2009, 12:14:52
Próbowałeś może czegoś takiego:
Kod
xmlHttp.overrideMimeType('text/html; charset=windows-1250');
?
Lejto
8.03.2009, 12:35:50
nie nie próbowałem, jak będzie potrzeba to zobaczę
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.