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

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!
