Jak zmienić kodowanie tekstu bez użycia funkcji iconv?

PL
Data dodania: 2011-09-13, Autor: Karol, Dodał: Karol, Wyświetleń: 299

Często podczas pisania różnego rodzaju skryptów zachodzi potrzeba skonwertowania tekstu z jednego systemu kodowania znaków do innego. Możemy wówczas użyć funkcji iconv. Jeśli jednak nie mamy takiej możliwości możemy posłużyć się poniższym skryptem.

<?php
  function win2utf(){
   $tabela = Array(
  $tabela = Array(
    "\xb9" => "\xc4\x85", "\xa5" => "\xc4\x84", "\xe6" => "\xc4\x87", "\xc6" => "\xc4\x86",
    "\xea" => "\xc4\x99", "\xca" => "\xc4\x98", "\xb3" => "\xc5\x82", "\xa3" => "\xc5\x81",
    "\xf3" => "\xc3\xb3", "\xd3" => "\xc3\x93", "\x9c" => "\xc5\x9b", "\x8c" => "\xc5\x9a",
    "\x9f" => "\xc5\xba", "\xaf" => "\xc5\xbb", "\xbf" => "\xc5\xbc", "\xac" => "\xc5\xb9",
    "\xf1" => "\xc5\x84", "\xd1" => "\xc5\x83", "\x8f" => "\xc5\xb9");
   return $tabela;
  }
 
  function iso2utf(){
   $tabela = Array(
    "\xb1" => "\xc4\x85", "\xa1" => "\xc4\x84", "\xe6" => "\xc4\x87", "\xc6" => "\xc4\x86",
    "\xea" => "\xc4\x99", "\xca" => "\xc4\x98", "\xb3" => "\xc5\x82", "\xa3" => "\xc5\x81",
    "\xf3" => "\xc3\xb3", "\xd3" => "\xc3\x93", "\xb6" => "\xc5\x9b", "\xa6" => "\xc5\x9a",
    "\xbc" => "\xc5\xbc", "\xac" => "\xc5\xbb", "\xbf" => "\xc5\xba", "\xaf" => "\xc5\xb9",
    "\xf1" => "\xc5\x84", "\xd1" => "\xc5\x83");
   return $tabela;
  }
 
  function ISO88592_2_UTF8($tekst){
   return strtr($tekst, iso2utf());
  }
 
  function UTF8_2_ISO88592($tekst){
   return strtr($tekst, array_flip(iso2utf()));
  }
 
  function WIN1250_2_UTF8($tekst){
   return strtr($tekst, win2utf());
  }
 
  function UTF8_2_WIN1250($tekst){
   return strtr($tekst, array_flip(win2utf()));
  }
 
  function ISO88592_2_WIN1250($tekst){
   return strtr($tekst, "\xa1\xa6\xac\xb1\xb6\xbc", "\xa5\x8c\x8f\xb9\x9c\x9f");
  }
 
  function WIN1250_2_ISO88592($tekst){
   return strtr($tekst, "\xa5\x8c\x8f\xb9\x9c\x9f", "\xa1\xa6\xac\xb1\xb6\xbc");
 
  }
?>

Aby teraz przekonwerować tekst w zmiennej $s z systemu WIN1250 do np. UTF napiszemy:

$s=WIN1250_2_UTF8($s);

 


Aby dodawać komentarze musisz być zalogowany!


Kontakt

Jeśli chcesz się z nami skontaktować napisz na adres: info(at)binboy.org lub odwiedź nasz profil na Facebooku!

O Nas

Serwis binboy.org to kopalnia wiedzy dla wszystkich z branży IT, w szczególności dla programistów i webmasterów. To duży zbiór kursów programowania, tutoriali, darmowych ebooków, setki kodów źródłowych itp.

Bądź w kontakcie

Panel użytkownika

Zaloguj się do panelu użytkownika.
Nie masz konta? Zarejestruj się!
Zapomniałeś hasła?