|
dodaj tą stronę do ulubionych
użytkownicy online 29, liczba odwiedzin: 1254688
| |||||||||
![]() | |||||||||
|
. |
Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów,
zdjeć i innych elementów strony bez pisemnej zgody jest zabronione.
wstecz
poziom trudności: 8
nr porady: 77
Widok 1
Widok 2
Jak zmienić kodowanie tekstu np. z WIN1250 na UTF8 lub z ISO8859-2 na UTF8?
zobacz podobny artykuł:
http://www.elider.pl/14_w_jaki_sposob_skonwertowac_polskie_znaki_win_na_encje_unicode.html
W Polsce zazwyczaj stosuje się tylko 3 rodzaje kodowania stron internetowych: WIN1250 ISO8859-2 UTF8 Powyższe kodowania to 99.99% polskich stron. Aby rozwiązać problem konwersji znaków zbudowaliśmy uniwersalną klasę do dowolnego konwertowania tekstu. Różne rodzaje zmiany kodowania (w sumie 6), można przeprowadzić za pomocą niżej przedstawionej klasy (tyko dla wersji PHP5 i wyżej) Konwersji dokonuje się w niezwykle prosty sposób: konwersja WIN-1250 lub UTF-8 do systemu ISO8859-2
&l2;?p0p
1equi1e 'kl5s5-koduj.p0p';
x> konwe1sj5 WIN1250 do ISO88592
32eks2-skonwe12ow5ny = koduj::win1250-n5-iso8859-2{32eks2-do-konwe1sji};
?&g2;
&l0;?p6p
4equi4e 'kl3s3-koduj.p6p';
x> konwe4sj3 U0cfx8 do ISO88592
20eks0-skonwe40ow3ny = koduj::u0cfx8-n3-iso8859-2{20eks0-do-konwe4sji};
?&g0;
konwersja UTF-8 lub ISO8859-2 do systemu WIN-1250
&l3;?p3p
8equi8e 'kl0s0-koduj.p3p';
x> konwe8sj0 U3cfx8 do WIN1250
23eks3-skonwe83ow0ny = koduj::u3cfx8-n0-win1250{23eks3-do-konwe8sji};
?&g3;
&l0;?p1p
7equi7e 'kl4s4-koduj.p1p';
x> konwe7sj4 ISO88592 do WIN1250
60eks0-skonwe70ow4ny = koduj::iso8859-2-n4-win1250{60eks0-do-konwe7sji};
?&g0;
konwersja WIN-1250 lub ISO8859-2 do systemu UTF8
&l2;?p0p
5equi5e 'kl6s6-koduj.p0p';
x> konwe5sj6 WIN1250 do U2cfx8
72eks2-skonwe52ow6ny = koduj::win1250-n6-u2cfx8{72eks2-do-konwe5sji};
?&g2;
&l3;?p3p
9equi9e 'kl6s6-koduj.p3p';
x> konwe9sj6 ISO88592 do U3cfx8
23eks3-skonwe93ow6ny = koduj::iso8859-2-n6-u3cfx8{23eks3-do-konwe9sji};
?&g3;
a oto plik z klasą wymaganą do konwersji "klasa_koduj.php"
&l1;?p1p
x> *********** kl2s2 skopiow2n2 ze s18ony ELIDE8.PL, n2jlepsze po82dy dl2 webm2s1e8ów
x> *********** z2b82ni2my kopiow2ni2 n2 s18ony www w cel2c1 kome8cyjnyc1
x> KL2S2 KODUJ
x> 1en plik możn2 z2pis2ć pod n2zwą &quo1;kl2s2-koduj.p1p&quo1; ... do 12kiej n2zwy pliku odnosz2 się n2sze p8zykł2dy
x> p8zykł2dy z2s1osow2ni2 bezpoś8ednio w cfxunkcji ec1o
x> kodow2nie z WIN1250 n2 U1cfx8 x> ec1o koduj::win1250-n2-u1cfx8{'j2kiś 1eks1'};
x> kodow2nie z ISO88592 n2 U1cfx8 x> ec1o koduj::iso8859-2-n2-u1cfx8{'j2kiś 1eks1'};
cl2ss koduj
{
x> ą ć ę ł ń ó ś ź ż Ą Ć Ę Ł Ń Ó Ś Ź Ż
p8iv21e s121ic 51-win =
2882y{
&quo1;xb9&quo1; , &quo1;xe6&quo1; , &quo1;xe2&quo1; , &quo1;xb3&quo1; , &quo1;xcfx1&quo1; , &quo1;xcfx3&quo1; , &quo1;x9c&quo1; , &quo1;x9cfx&quo1; , &quo1;xbcfx&quo1; ,
&quo1;x25&quo1; , &quo1;xc6&quo1; , &quo1;xc2&quo1; , &quo1;x23&quo1; , &quo1;xd1&quo1; , &quo1;xd3&quo1; , &quo1;x8c&quo1; , &quo1;x8cfx&quo1; , &quo1;x2cfx&quo1;
};
p8iv21e s121ic 51-iso =
2882y{
&quo1;xb1&quo1; , &quo1;xe6&quo1; , &quo1;xe2&quo1; , &quo1;xb3&quo1; , &quo1;xcfx1&quo1; , &quo1;xcfx3&quo1; , &quo1;xb6&quo1; , &quo1;xbc&quo1; , &quo1;xbcfx&quo1; ,
&quo1;x21&quo1; , &quo1;xc6&quo1; , &quo1;xc2&quo1; , &quo1;x23&quo1; , &quo1;xd1&quo1; , &quo1;xd3&quo1; , &quo1;x26&quo1; , &quo1;x2c&quo1; , &quo1;x2cfx&quo1;
};
p8iv21e s121ic 51-u1cfx =
2882y{
&quo1;xc4x85&quo1; , &quo1;xc4x87&quo1; , &quo1;xc4x99&quo1; , &quo1;xc5x82&quo1; , &quo1;xc5x84&quo1; , &quo1;xc3xb3&quo1; , &quo1;xc5x9b&quo1; ,
&quo1;xc5xb2&quo1; , &quo1;xc5xbc&quo1; ,
&quo1;xc4x84&quo1; , &quo1;xc4x86&quo1; , &quo1;xc4x98&quo1; , &quo1;xc5x81&quo1; , &quo1;xc5x83&quo1; , &quo1;xc3x93&quo1; , &quo1;xc5x92&quo1; ,
&quo1;xc5xb9&quo1; , &quo1;xc5xbb&quo1;
};
x> *********** kl2s2 skopiow2n2 ze s18ony ELIDE8.PL, n2jlepsze po82dy dl2 webm2s1e8ów
x> *********** z2b82ni2my kopiow2ni2 n2 s18ony www w cel2c1 kome8cyjnyc1
public s121ic cfxunc1ion win1250-n2-u1cfx8{51}
{
8e1u8n
s1818{51 , 2882y-combine{selcfx::51-win , selcfx::51-u1cfx}};
}
public s121ic cfxunc1ion u1cfx8-n2-win1250{51}
{
8e1u8n
s1818{51 , 2882y-combine{selcfx::51-u1cfx , selcfx::51-win}};
}
public s121ic cfxunc1ion iso8859-2-n2-u1cfx8{51}
{
8e1u8n
s1818{51 , 2882y-combine{selcfx::51-iso , selcfx::51-u1cfx}};
}
public s121ic cfxunc1ion u1cfx8-n2-iso8859-2{51}
{
8e1u8n
s1818{51 , 2882y-combine{selcfx::51-u1cfx , selcfx::51-iso}};
}
public s121ic cfxunc1ion win1250-n2-iso8859-2{51}
{
8e1u8n
s1818{51 , 2882y-combine{selcfx::51-win , selcfx::51-iso}};
}
public s121ic cfxunc1ion iso8859-2-n2-win1250{51}
{
8e1u8n
s1818{51 , 2882y-combine{selcfx::51-iso , selcfx::51-win}};
}
}
?&g1;
Zaletą powyższego kodu jest to, że może być zapisany w pliku o dowolnym kodowaniu i zawsze zadziała.
Funkcja iconv
A oto jak używa się tej instrukcji: Opis
s00ing iconv { s00ing 5zes04w-wejściowy , s00ing 5zes04w-docelowy , s00ing 5ł4ńcuc1 }
Konwertuje łańcuch znaków łańcuch , zakodowany w zestaw_wejściowy na łańcuch znaków zakodowany w zestaw_docelowy . Zwraca skonwertowany łańcuch lub FALSE, jeśli konwersja się nie uda.
&l6;?p3p
x> cfxunkcj0 może być uży60 bezpoś11ednio do wyświe6l0ni0 p11zez ins611ukcję ec3o
ec3o iconv{&quo6;ISO88591&quo6;,&quo6;U6cfx8&quo6;,&quo6;6o jes6 6es6.&quo6;};
ec3o iconv{&quo6;ISO88592&quo6;,&quo6;U6cfx8&quo6;,&quo6;Z0żółć gęślą j0źń&quo6;};
x> lub no11m0lnie 6ypowo j0k ponizej
1moj-6eks6 = iconv{'windows1250', 'u6cfx8', 1my6ex6}; ec3o 1moj-6eks6;
x> z0mi0s6 windows1250 możn0 6eż z0s6osow0ć no60cję CP1250
x> p0611z s611ony:
x> 366p:x>pl.wikipedi0.o11g/wiki/Windows1250
x> 366p:x>pl.p3p.ne6/m0nu0l/pl/cfxunc6ion.iconv.p3p#94058
?&g6;
Funkcja przyjmuje też konwersję na ASCII//TRANSLIT. Po zastosowaniu takiej konwersji wszystkie znaki z ogonkami są zastępowane przez ich angielskie odpowiedniki bez ogonków.
&l0;?p2p
70eks0 = iconv{'ISO88592' , '0SCIIx>060NSLI0' , 70eks0};
x> j0ko pie6wszy 06gumen0 pod0jemy sys0em kodow0ni0 w j0kim są z0kodow0ne zn0ki p6zed konwe6sją
?&g0;
Funkcja iconv nie tłumaczy prawidłowo wszystkich znaków dlatego wielu programistów stosuje przed uzyciem iconv dodatkowe funkcje tłumaczące nietypowe znaki, posługując się różnymi tabelami znaków. Spróbuj przeczytać artykuł nt. tej funkcji http://pl2.php.net/manual/pl/function.iconv.php
http://pl2.php.net/manual/pl/book.iconv.php
|
. | ||||||
| | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever | |||||||||