Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Konwersja nieznanego kodowania na UTF-8
Domon
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.11.2008

Ostrzeżenie: (0%)
-----


Witam, piszę skrypt który z podanej przez użytkownika strony wyciąga tytuł, opis oraz tagi OpenGraphProtocol. Skrypt wygląda tak, że przez CURL pobierane jest źródło strony a następnie przez preg_match() pobierane są interesujące mnie dane. Wszystko ładnie gdyby nie to, że strony są w różnych kodowaniach i skrypt rzuca krzaczkami. Próbowałem napisać funkcję, która zwróci mi "naprawiony" string z polskimi literami używając głównie mb_detect_encoding() i iconv(), jednak żadne rozwiązanie nie było na tyle dobre aby rozwiązać problem do końca. Jeśli coś działało mi np przy ISO-8859-2 nie działalo np przy UTF-8 itd.

Szukałem rozwiązania i na forum.php.pl i na innych ale nie znalazłem nic co rozwiązałoby problem, a mi samemu skończyły się już pomysły.
Miał ktoś kiedyś podobny problem? Jakiś pomysł na wykonanie tego?

Liczę na Waszą pomoc (IMG:style_emoticons/default/wink.gif) .
Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Domon
post
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.11.2008

Ostrzeżenie: (0%)
-----


Nieco na odwrót niż zamierzałem w poprzednim poście, bo tam chciałem szukać krzaków a tu szukam polskich liter (IMG:style_emoticons/default/smile.gif) . Ale ważne, że w końcu działa.
Dla potomnych:
  1. function utf8fix($str)
  2. {
  3. $ary = array('ASCII', 'UTF-8', 'ISO-8859-2', 'ISO-8859-1');
  4. $detect = mb_detect_encoding($str, $ary);
  5.  
  6. $iconv = iconv($detect, 'UTF-8', $str);
  7.  
  8. if (preg_match('/[ęóąśłżźćńĘÓĄŚŁŻŹĆŃ]/', utf8_decode($iconv)))
  9. {
  10. return utf8_decode($iconv);
  11. }
  12. else
  13. {
  14. return $iconv;
  15. }
  16. }


Ten post edytował Domon 19.04.2012, 18:53:31
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 22:59