Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak sprawdzić kodowanie - zawartość zmiennej
Masterson
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 18.07.2011

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


Witam serdecznie.

W zmiennej $dane mam opis, który jest pobierany z pliku tekstowego. Plik tekstowy ma kodowanie ISO-8559-2 lub Windows-1250. Chcę sprawdzić kodowanie ponieważ za pomocą iconv konwertuję zawartość do UTF-8.

Szukałem w sieci (również na forum) i nie znalazłem niczego co by zadziałało.

Ostatnie rozwiązanie, które sprawdzałem i które niby działa:
  1. $encoding = mb_detect_encoding($dane, 'ISO-8859-2, Windows-1250, UTF-8', true);
  2. echo $encoding;


Niestety echo nie zwraca żadnej wartości (nie wykrywa kodowania zmiennej), ktoś wie jak to ugryźć?

Ten post edytował Masterson 1.08.2011, 11:08:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Masterson
post
Post #2





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 18.07.2011

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


Zrobiłem tak:

  1. function converter($str) {
  2. $arr=array( chr(185)=>'windows-1250');
  3. return strtr($str,$arr);
  4. }
  5.  
  6. $content = converter ($dane);
  7.  
  8. $check = 'windows-1250';
  9. $pos = strpos($content, $check);
  10.  
  11. if ($pos === false) {
  12. $encoding = "ISO-8859-2";
  13. } else {
  14. $encoding = "Windows-1250";
  15. }
  16.  
  17. echo iconv($encoding,"UTF-8",$dane)


Nie jest to na pewno profesjonalne rozwiązanie, ale działa poprawnie. Użyłem strtr ponieważ nie wiem jak inaczej można sprawdzić obecność danego znaku ASCII w zmiennej. Próbowałem preg_match i strpos i nie wykrywało mi znaku 'chr(185)' (pewnie popełniam błąd w składni) stąd tak na około, najpierw zamiana znaku na konkretny string i uzależnienie kodowania od owego stringu (litera ą i kilka innych mają inny nr w ASCII dla ISO i Windows). Jak ktoś wie jak powinienem to zrobić aby było "poprawniejsze" to proszę o sugestie (IMG:style_emoticons/default/smile.gif)

Ten post edytował Masterson 1.08.2011, 17:43:48
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: 10.10.2025 - 20:07