Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak wykryc w jakim kodowaniu jest tekst i zamienić go na utf-8
Octobus
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

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


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 ;/
Go to the top of the page
+Quote Post
Ilware
post
Post #2





Grupa: Zarejestrowani
Postów: 248
Pomógł: 31
Dołączył: 14.12.2010
Skąd: Wrocław

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


zmień linijkę 11 na :

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

Powinien sam wykryć kodowanie jakie ma.
Go to the top of the page
+Quote Post
Octobus
post
Post #3





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

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


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óż ...
Go to the top of the page
+Quote Post
rocktech.pl
post
Post #4





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


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. ...
Go to the top of the page
+Quote Post

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: 27.09.2025 - 05:10