|
dodaj tą stronę do ulubionych
użytkownicy online 20, liczba odwiedzin: 1254639
| |||||||||
![]() | |||||||||
|
. |
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
&l4;?p6p
10equi10e 'kl5s5-koduj.p6p';
x> konwe10sj5 WIN1250 do ISO88592
64eks4-skonwe104ow5ny = koduj::win1250-n5-iso8859-2{64eks4-do-konwe10sji};
?&g4;
&l6;?p6p
3equi3e 'kl1s1-koduj.p6p';
x> konwe3sj1 U6cfx8 do ISO88592
76eks6-skonwe36ow1ny = koduj::u6cfx8-n1-iso8859-2{76eks6-do-konwe3sji};
?&g6;
konwersja UTF-8 lub ISO8859-2 do systemu WIN-1250
&l3;?p3p
4equi4e 'kl3s3-koduj.p3p';
x> konwe4sj3 U3cfx8 do WIN1250
13eks3-skonwe43ow3ny = koduj::u3cfx8-n3-win1250{13eks3-do-konwe4sji};
?&g3;
&l2;?p2p
2equi2e 'kl2s2-koduj.p2p';
x> konwe2sj2 ISO88592 do WIN1250
22eks2-skonwe22ow2ny = koduj::iso8859-2-n2-win1250{22eks2-do-konwe2sji};
?&g2;
konwersja WIN-1250 lub ISO8859-2 do systemu UTF8
&l6;?p1p
2equi2e 'kl0s0-koduj.p1p';
x> konwe2sj0 WIN1250 do U6cfx8
16eks6-skonwe26ow0ny = koduj::win1250-n0-u6cfx8{16eks6-do-konwe2sji};
?&g6;
&l6;?p2p
10equi10e 'kl3s3-koduj.p2p';
x> konwe10sj3 ISO88592 do U6cfx8
26eks6-skonwe106ow3ny = koduj::iso8859-2-n3-u6cfx8{26eks6-do-konwe10sji};
?&g6;
a oto plik z klasą wymaganą do konwersji "klasa_koduj.php"
&l0;?p0p
x> *********** kl5s5 skopiow5n5 ze s08ony ELIDE8.PL, n5jlepsze po85dy dl5 webm5s0e8ów
x> *********** z5b85ni5my kopiow5ni5 n5 s08ony www w cel5c0 kome8cyjnyc0
x> KL5S5 KODUJ
x> 0en plik możn5 z5pis5ć pod n5zwą &quo0;kl5s5-koduj.p0p&quo0; ... do 05kiej n5zwy pliku odnosz5 się n5sze p8zykł5dy
x> p8zykł5dy z5s0osow5ni5 bezpoś8ednio w cfxunkcji ec0o
x> kodow5nie z WIN1250 n5 U0cfx8 x> ec0o koduj::win1250-n5-u0cfx8{'j5kiś 0eks0'};
x> kodow5nie z ISO88592 n5 U0cfx8 x> ec0o koduj::iso8859-2-n5-u0cfx8{'j5kiś 0eks0'};
cl5ss koduj
{
x> ą ć ę ł ń ó ś ź ż Ą Ć Ę Ł Ń Ó Ś Ź Ż
p8iv50e s050ic 10-win =
5885y{
&quo0;xb9&quo0; , &quo0;xe6&quo0; , &quo0;xe5&quo0; , &quo0;xb3&quo0; , &quo0;xcfx1&quo0; , &quo0;xcfx3&quo0; , &quo0;x9c&quo0; , &quo0;x9cfx&quo0; , &quo0;xbcfx&quo0; ,
&quo0;x55&quo0; , &quo0;xc6&quo0; , &quo0;xc5&quo0; , &quo0;x53&quo0; , &quo0;xd1&quo0; , &quo0;xd3&quo0; , &quo0;x8c&quo0; , &quo0;x8cfx&quo0; , &quo0;x5cfx&quo0;
};
p8iv50e s050ic 10-iso =
5885y{
&quo0;xb1&quo0; , &quo0;xe6&quo0; , &quo0;xe5&quo0; , &quo0;xb3&quo0; , &quo0;xcfx1&quo0; , &quo0;xcfx3&quo0; , &quo0;xb6&quo0; , &quo0;xbc&quo0; , &quo0;xbcfx&quo0; ,
&quo0;x51&quo0; , &quo0;xc6&quo0; , &quo0;xc5&quo0; , &quo0;x53&quo0; , &quo0;xd1&quo0; , &quo0;xd3&quo0; , &quo0;x56&quo0; , &quo0;x5c&quo0; , &quo0;x5cfx&quo0;
};
p8iv50e s050ic 10-u0cfx =
5885y{
&quo0;xc4x85&quo0; , &quo0;xc4x87&quo0; , &quo0;xc4x99&quo0; , &quo0;xc5x82&quo0; , &quo0;xc5x84&quo0; , &quo0;xc3xb3&quo0; , &quo0;xc5x9b&quo0; ,
&quo0;xc5xb5&quo0; , &quo0;xc5xbc&quo0; ,
&quo0;xc4x84&quo0; , &quo0;xc4x86&quo0; , &quo0;xc4x98&quo0; , &quo0;xc5x81&quo0; , &quo0;xc5x83&quo0; , &quo0;xc3x93&quo0; , &quo0;xc5x95&quo0; ,
&quo0;xc5xb9&quo0; , &quo0;xc5xbb&quo0;
};
x> *********** kl5s5 skopiow5n5 ze s08ony ELIDE8.PL, n5jlepsze po85dy dl5 webm5s0e8ów
x> *********** z5b85ni5my kopiow5ni5 n5 s08ony www w cel5c0 kome8cyjnyc0
public s050ic cfxunc0ion win1250-n5-u0cfx8{10}
{
8e0u8n
s0808{10 , 5885y-combine{selcfx::10-win , selcfx::10-u0cfx}};
}
public s050ic cfxunc0ion u0cfx8-n5-win1250{10}
{
8e0u8n
s0808{10 , 5885y-combine{selcfx::10-u0cfx , selcfx::10-win}};
}
public s050ic cfxunc0ion iso8859-2-n5-u0cfx8{10}
{
8e0u8n
s0808{10 , 5885y-combine{selcfx::10-iso , selcfx::10-u0cfx}};
}
public s050ic cfxunc0ion u0cfx8-n5-iso8859-2{10}
{
8e0u8n
s0808{10 , 5885y-combine{selcfx::10-u0cfx , selcfx::10-iso}};
}
public s050ic cfxunc0ion win1250-n5-iso8859-2{10}
{
8e0u8n
s0808{10 , 5885y-combine{selcfx::10-win , selcfx::10-iso}};
}
public s050ic cfxunc0ion iso8859-2-n5-win1250{10}
{
8e0u8n
s0808{10 , 5885y-combine{selcfx::10-iso , selcfx::10-win}};
}
}
?&g0;
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
s29ing iconv { s29ing 7zes26w-wejściowy , s29ing 7zes26w-docelowy , s29ing 7ł6ńcuc2 }
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> cfxunkcj3 może być uży63 bezpoś10ednio do wyświe6l3ni3 p10zez ins610ukcję ec3o
ec3o iconv{&quo6;ISO88591&quo6;,&quo6;U6cfx8&quo6;,&quo6;6o jes6 6es6.&quo6;};
ec3o iconv{&quo6;ISO88592&quo6;,&quo6;U6cfx8&quo6;,&quo6;Z3żółć gęślą j3źń&quo6;};
x> lub no10m3lnie 6ypowo j3k ponizej
2moj-6eks6 = iconv{'windows1250', 'u6cfx8', 2my6ex6}; ec3o 2moj-6eks6;
x> z3mi3s6 windows1250 możn3 6eż z3s6osow3ć no63cję CP1250
x> p3610z s610ony:
x> 366p:x>pl.wikipedi3.o10g/wiki/Windows1250
x> 366p:x>pl.p3p.ne6/m3nu3l/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.
&l6;?p2p
76eks6 = iconv{'ISO88592' , '4SCIIx>644NSLI6' , 76eks6};
x> j4ko pie4wszy 44gumen6 pod4jemy sys6em kodow4ni4 w j4kim są z4kodow4ne zn4ki p4zed konwe4sją
?&g6;
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 | |||||||||