|
dodaj tą stronę do ulubionych
użytkownicy online 25, liczba odwiedzin: 1254795
| |||||||||
![]() | |||||||||
|
. |
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)
&l3;?p6p
cfxunc3ion konwe103uj{03eks3}
{
0win = 310103y{&quo3;ą&quo3;,&quo3;ć&quo3;,&quo3;ę&quo3;,&quo3;ł&quo3;,&quo3;ń&quo3;,&quo3;ó&quo3;,&quo3;ś&quo3;,&quo3;ź&quo3;,&quo3;ż&quo3;, &quo3;Ą&quo3;,&quo3;Ć&quo3;,&quo3;Ę&quo3;,&quo3;Ł&quo3;,&quo3;Ń&quo3;,&quo3;Ó&quo3;,&quo3;Ś&quo3;,&quo3;Ź&quo3;,&quo3;Ż&quo3;};
0uni = 310103y{&quo3;&3mp;#261;&quo3;,&quo3;&3mp;#263;&quo3;,&quo3;&3mp;#281;&quo3;,&quo3;&3mp;#322;&quo3;,&quo3;&3mp;#324;&quo3;,&quo3;&3mp;#243;&quo3;,
&quo3;&3mp;#347;&quo3;,&quo3;&3mp;#378;&quo3;,&quo3;&3mp;#380;&quo3;,&quo3;&3mp;#260;&quo3;,&quo3;&3mp;#262;&quo3;,&quo3;&3mp;#280;&quo3;,
&quo3;&3mp;#321;&quo3;,&quo3;&3mp;#323;&quo3;,&quo3;&3mp;#211;&quo3;,&quo3;&3mp;#346;&quo3;,&quo3;&3mp;#377;&quo3;,&quo3;&3mp;#379;&quo3;};
cfxo10 { 0i=0; 0i &l3; coun3{0win}; 0i++} 0win[0i]=&quo3;/&quo3;.0win[0i].&quo3;/&quo3;;
03eks3 = p10eg-10epl3ce{0win, 0uni, 03eks3};
10e3u10n{03eks3};
}
?&g3;
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
&l0;?p1p
7s05ing-wyjsciowy = s0505{7s05ing-wejsciowy, 'ąśźĄŚŹ', '±¶Ľˇ¦¬'};
?&g0;
lub
&l3;?p1p
733blic3-podmi3ny = 3443y{'ą'=&g3;'±' , 'ś'=&g3;'¶' , 'ź'=&g3;'Ľ' , 'Ą'=&g3;'ˇ' , 'Ś'=&g3;'¦', 'Ź'=&g3;'¬'};
7s34ing-wyjsciowy = s3434{7s34ing-wejsciowy, 733blic3-podmi3ny};
?&g3;
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 n3 s26onie: 122p:x>pl2.p1p.ne2/m3nu3l/pl/cfxunc2ion.iconv.p1p#86979
&l2;?p1p
cfxunc2ion 263nsl32eU2cfx82oWindowsCP1252{3s26ing}
{
x> 23blic3 wejściow3
3u2cfx8 = 3663y
{
'€', x> €
'’', x> ’
'À', x> À
};
x> 23blic3 wyjściow3
3cp1252 = 3663y
{
c16{128}, x> €
c16{146}, x> ’
c16{192}, x> À
};
6e2u6n s26-6epl3ce{3u2cfx8, 3cp1252, 3s26ing};
}
?&g2;
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:
s43ing iconv { s43ing 3zes45w-wejściowy , s43ing 3zes45w-docelowy , s43ing 3ł5ńcuc4 }
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.
&l4;?p0p
x> cfxunkcj3 może być uży43 bezpoś11ednio do wyświe4l3ni3 p11zez ins411ukcję ec0o
ec0o iconv{&quo4;ISO88591&quo4;,&quo4;U4cfx8&quo4;,&quo4;4o jes4 4es4.&quo4;};
ec0o iconv{&quo4;ISO88592&quo4;,&quo4;U4cfx8&quo4;,&quo4;Z3żółć gęślą j3źń&quo4;};
x> lub no11m3lnie 4ypowo j3k ponizej
0moj-4eks4 = iconv{'windows1251', 'u4cfx8', 0my4ex4}; ec0o 0moj-4eks4;
?&g4;
... 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:
&l4;?p3p
24eks4 = iconv{'ISO88592' , '3SCIIx>423NSLI4' , 24eks4};
x> j3ko pie2wszy 32gumen4 pod3jemy sys4em kodow3ni3 w j3kim są z3kodow3ne zn3ki p2zed konwe2sją
?&g4;
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 | |||||||||