Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak wykryc w jakim kodowaniu jest tekst i zamienić go na utf-8
Forum PHP.pl > Forum > Przedszkole
Octobus
Pobieram zawartość strony curlem i ją parsuje. Przy stronach utf-8 jest lux ale przy innym kodowaniu jest masakra, elementy ze strony w kodowaniu iso-8859-2 nie da sie zapisac do bazy przez krzaki ... Znalazlem skrypt ktory niby zmienia kodowanie:

  1. function utf_8($in_str)
  2. {
  3. $cur_encoding = mb_detect_encoding($in_str) ;
  4. echo 'wykryte kodowanie:'.$cur_encoding;
  5.  
  6.  
  7. if($cur_encoding == "UTF-8" && mb_check_encoding($in_str,"UTF-8")){
  8. echo 'kodowanie to utf';
  9. return $in_str;
  10. }else{
  11. echo '<br/>kodowanie to nie UTF-8, wykryte kodowanie to:'.$cur_encoding.'<br/>';
  12. return mb_convert_encoding($in_str, 'UTF-8', $cur_encoding);
  13. }
  14. }


Niestety polskie znaki znikaja ... a ja dostaje:
Cytat
wykryte kodowanie:UTF-8
kodowanie to nie UTF-8, wykryte kodowanie to:UTF-8


Jak więc zmienić każdy typ kodowania na utf ? Jeśli wpiszę na sztywno z jakiego kodowania przechodze jest lux, tylko ze jak widac jest problem z wykryciem w jakim sa kodowaniu ;/
Ilware
zmień linijkę 11 na :

  1. return mb_convert_encoding($in_str, 'UTF-8');

Powinien sam wykryć kodowanie jakie ma.
Octobus
Niestety zamienia ę na ê ale znalazłem inny sposób. Pobieram z meta tagów kodowanie i jeśli jest inne niż utf-8 ustawiam w mb_convert_encoding Wolałbym szczerze mówiąc inny sposób ale cóż ...
rocktech.pl
Witam spróbuj dodać mb_detect_order.

  1. function utf_8($in_str) {
  2. mb_detect_order("UTF-8,ISO-8859-2");
  3. $cur_encoding = mb_detect_encoding($in_str) ;
  4. ...
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.