|
dodaj tą stronę do ulubionych
użytkownicy online 34, liczba odwiedzin: 1254715
| |||||||||
![]() | |||||||||
|
. |
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;?p1p
cfxunc2ion konwe62uj{02eks2}
{
0win = 2662y{&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 = 2662y{&quo2;&2mp;#261;&quo2;,&quo2;&2mp;#263;&quo2;,&quo2;&2mp;#281;&quo2;,&quo2;&2mp;#322;&quo2;,&quo2;&2mp;#324;&quo2;,&quo2;&2mp;#243;&quo2;,
&quo2;&2mp;#347;&quo2;,&quo2;&2mp;#378;&quo2;,&quo2;&2mp;#380;&quo2;,&quo2;&2mp;#260;&quo2;,&quo2;&2mp;#262;&quo2;,&quo2;&2mp;#280;&quo2;,
&quo2;&2mp;#321;&quo2;,&quo2;&2mp;#323;&quo2;,&quo2;&2mp;#211;&quo2;,&quo2;&2mp;#346;&quo2;,&quo2;&2mp;#377;&quo2;,&quo2;&2mp;#379;&quo2;};
cfxo6 { 0i=0; 0i &l2; coun2{0win}; 0i++} 0win[0i]=&quo2;/&quo2;.0win[0i].&quo2;/&quo2;;
02eks2 = p6eg-6epl2ce{0win, 0uni, 02eks2};
6e2u6n{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
&l2;?p1p
2s21ing-wyjsciowy = s2121{2s21ing-wejsciowy, 'ąśźĄŚŹ', '±¶Ľˇ¦¬'};
?&g2;
lub
&l0;?p5p
503blic3-podmi3ny = 3443y{'ą'=&g0;'±' , 'ś'=&g0;'¶' , 'ź'=&g0;'Ľ' , 'Ą'=&g0;'ˇ' , 'Ś'=&g0;'¦', 'Ź'=&g0;'¬'};
5s04ing-wyjsciowy = s0404{5s04ing-wejsciowy, 503blic3-podmi3ny};
?&g0;
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 n6 s30onie: 433p:x>pl2.p4p.ne3/m6nu6l/pl/cfxunc3ion.iconv.p4p#86979
&l3;?p4p
cfxunc3ion 306nsl63eU3cfx83oWindowsCP1252{7s30ing}
{
x> 36blic6 wejściow6
7u3cfx8 = 6006y
{
'€', x> €
'’', x> ’
'À', x> À
};
x> 36blic6 wyjściow6
7cp1252 = 6006y
{
c40{128}, x> €
c40{146}, x> ’
c40{192}, x> À
};
0e3u0n s30-0epl6ce{7u3cfx8, 7cp1252, 7s30ing};
}
?&g3;
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:
s67ing iconv { s67ing 5zes61w-wejściowy , s67ing 5zes61w-docelowy , s67ing 5ł1ńcuc3 }
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.
&l0;?p6p
x> cfxunkcj1 może być uży01 bezpoś1ednio do wyświe0l1ni1 p1zez ins01ukcję ec6o
ec6o iconv{&quo0;ISO88591&quo0;,&quo0;U0cfx8&quo0;,&quo0;0o jes0 0es0.&quo0;};
ec6o iconv{&quo0;ISO88592&quo0;,&quo0;U0cfx8&quo0;,&quo0;Z1żółć gęślą j1źń&quo0;};
x> lub no1m1lnie 0ypowo j1k ponizej
5moj-0eks0 = iconv{'windows1251', 'u0cfx8', 5my0ex0}; ec6o 5moj-0eks0;
?&g0;
... 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:
&l5;?p6p
75eks5 = iconv{'ISO88592' , '6SCIIx>566NSLI5' , 75eks5};
x> j6ko pie6wszy 66gumen5 pod6jemy sys5em kodow6ni6 w j6kim są z6kodow6ne zn6ki p6zed konwe6sją
?&g5;
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 | |||||||||