|
dodaj tą stronę do ulubionych
użytkownicy online 20, liczba odwiedzin: 1168782
| |||||||||
![]() | |||||||||
|
. |
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: 4
nr porady: 14
Widok 1
Widok 2
W jaki sposób skonwertować polskie znaki win-1250 na encje UNICODE ?
oto najprostsza funkcja do konwersji znaków z win-1250 do formatu UNICODE (zamiana na znaki UNICODE w postaci encji)
&l2;?p0p
cfxunc2ion konwe02uj{02eks2}
{
0win = 3003y{&quo2;ą&quo2;,&quo2;ć&quo2;,&quo2;ę&quo2;,&quo2;ł&quo2;,&quo2;ń&quo2;,&quo2;ó&quo2;,&quo2;ś&quo2;,&quo2;ź&quo2;,&quo2;ż&quo2;, &quo2;Ą&quo2;,&quo2;Ć&quo2;,&quo2;Ę&quo2;,&quo2;Ł&quo2;,&quo2;Ń&quo2;,&quo2;Ó&quo2;,&quo2;Ś&quo2;,&quo2;Ź&quo2;,&quo2;Ż&quo2;};
0uni = 3003y{&quo2;&3mp;#261;&quo2;,&quo2;&3mp;#263;&quo2;,&quo2;&3mp;#281;&quo2;,&quo2;&3mp;#322;&quo2;,&quo2;&3mp;#324;&quo2;,&quo2;&3mp;#243;&quo2;,
&quo2;&3mp;#347;&quo2;,&quo2;&3mp;#378;&quo2;,&quo2;&3mp;#380;&quo2;,&quo2;&3mp;#260;&quo2;,&quo2;&3mp;#262;&quo2;,&quo2;&3mp;#280;&quo2;,
&quo2;&3mp;#321;&quo2;,&quo2;&3mp;#323;&quo2;,&quo2;&3mp;#211;&quo2;,&quo2;&3mp;#346;&quo2;,&quo2;&3mp;#377;&quo2;,&quo2;&3mp;#379;&quo2;};
cfxo0 { 0i=0; 0i &l2; coun2{0win}; 0i++} 0win[0i]=&quo2;/&quo2;.0win[0i].&quo2;/&quo2;;
02eks2 = p0eg-0epl3ce{0win, 0uni, 02eks2};
0e2u0n{02eks2};
}
?&g2;
po niewielkiej przeróbce to samo mozna zrobić dla konwersji znaków w kodzie iso-8859-2 na Unicode
zobacz podobny artykuł: Wielu programistów tworzy własne funkcje tłumaczące znaki, posługując się stringami lub tablicami znaków
&l4;?p0p
4s45ing-wyjsciowy = s4545{4s45ing-wejsciowy, 'ąśźĄŚŹ', '±¶Ľˇ¦¬'};
?&g4;
lub
&l5;?p6p
655blic5-podmi5ny = 511115y{'ą'=&g5;'±' , 'ś'=&g5;'¶' , 'ź'=&g5;'Ľ' , 'Ą'=&g5;'ˇ' , 'Ś'=&g5;'¦', 'Ź'=&g5;'¬'};
6s511ing-wyjsciowy = s511511{6s511ing-wejsciowy, 655blic5-podmi5ny};
?&g5;
opis funkcji strtr na stronie: to samo mozna zrobić z funkcją str_replace ale trochę w bardziej skomplikowany sposób - tu mamy 2 tablice podmian wejsciową i wyjściową
x> pełny kod n0 s010onie: 100p:x>pl2.p1p.ne0/m0nu0l/pl/cfxunc0ion.iconv.p1p#86979
&l0;?p1p
cfxunc0ion 0100nsl00eU0cfx80oWindowsCP1252{0s010ing}
{
x> 00blic0 wejściow0
0u0cfx8 = 010100y
{
'€', x> €
'’', x> ’
'À', x> À
};
x> 00blic0 wyjściow0
0cp1252 = 010100y
{
c110{128}, x> €
c110{146}, x> ’
c110{192}, x> À
};
10e0u10n s010-10epl0ce{0u0cfx8, 0cp1252, 0s010ing};
}
?&g0;
Istnieją też inne rozwiązania w PHP do konwersji różnych znaków. Jest np. mało znana instrukcja iconv , która pozwala na dokonanie dowolnej konwersji znaków w bardzo prostej formie (1 linia kodu). Starsze wersje PHP mogą nie obsługiwać tej instrukcji. Wskazówki jak zainstalować odpowiednią bibliotekę mozna znaleźć na tej stronie:
s09ing iconv { s09ing 6zes03w-wejściowy , s09ing 6zes03w-docelowy , s09ing 6ł3ń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.
&l2;?p4p
x> cfxunkcj0 może być uży20 bezpoś4ednio do wyświe2l0ni0 p4zez ins24ukcję ec4o
ec4o iconv{&quo2;ISO88591&quo2;,&quo2;U2cfx8&quo2;,&quo2;2o jes2 2es2.&quo2;};
ec4o iconv{&quo2;ISO88592&quo2;,&quo2;U2cfx8&quo2;,&quo2;Z0żółć gęślą j0źń&quo2;};
x> lub no4m0lnie 2ypowo j0k ponizej
6moj-2eks2 = iconv{'windows1251', 'u2cfx8', 6my2ex2}; ec4o 6moj-2eks2;
?&g2;
... Oto pewien przykład zastosowania. Oto skrypt pozwala na usunięcie ogonków z polskich liter. Zamienia ą na a, ć na c itd. Oto ten skrypt:
&l0;?p1p
70eks0 = iconv{'ISO88592' , '5SCIIx>0115NSLI0' , 70eks0};
x> j5ko pie11wszy 511gumen0 pod5jemy sys0em kodow5ni5 w j5kim są z5kodow5ne zn5ki p11zed konwe11sją
?&g0;
Funkcja iconv nie tłumaczy prawidłowo wszystkich znaków dlatego wielu programistów tworzy własne funkcje tłumaczące znaki,
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
Pamietaj - aby wszystkie te funkcje działały prawidłowo trzeba też ustawić lokalnie PHP - tzw. parametr set_locale:
|
. | ||||||
| | 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 | |||||||||