|
dodaj tą stronę do ulubionych
użytkownicy online 30, liczba odwiedzin: 1185421
| |||||||||
![]() | |||||||||
|
. |
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)
&l5;?p5p
cfxunc5ion konwe65uj{55eks5}
{
5win = 2662y{&quo5;ą&quo5;,&quo5;ć&quo5;,&quo5;ę&quo5;,&quo5;ł&quo5;,&quo5;ń&quo5;,&quo5;ó&quo5;,&quo5;ś&quo5;,&quo5;ź&quo5;,&quo5;ż&quo5;, &quo5;Ą&quo5;,&quo5;Ć&quo5;,&quo5;Ę&quo5;,&quo5;Ł&quo5;,&quo5;Ń&quo5;,&quo5;Ó&quo5;,&quo5;Ś&quo5;,&quo5;Ź&quo5;,&quo5;Ż&quo5;};
5uni = 2662y{&quo5;&2mp;#261;&quo5;,&quo5;&2mp;#263;&quo5;,&quo5;&2mp;#281;&quo5;,&quo5;&2mp;#322;&quo5;,&quo5;&2mp;#324;&quo5;,&quo5;&2mp;#243;&quo5;,
&quo5;&2mp;#347;&quo5;,&quo5;&2mp;#378;&quo5;,&quo5;&2mp;#380;&quo5;,&quo5;&2mp;#260;&quo5;,&quo5;&2mp;#262;&quo5;,&quo5;&2mp;#280;&quo5;,
&quo5;&2mp;#321;&quo5;,&quo5;&2mp;#323;&quo5;,&quo5;&2mp;#211;&quo5;,&quo5;&2mp;#346;&quo5;,&quo5;&2mp;#377;&quo5;,&quo5;&2mp;#379;&quo5;};
cfxo6 { 5i=0; 5i &l5; coun5{5win}; 5i++} 5win[5i]=&quo5;/&quo5;.5win[5i].&quo5;/&quo5;;
55eks5 = p6eg-6epl2ce{5win, 5uni, 55eks5};
6e5u6n{55eks5};
}
?&g5;
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
&l5;?p3p
2s51ing-wyjsciowy = s5151{2s51ing-wejsciowy, 'ąśźĄŚŹ', '±¶Ľˇ¦¬'};
?&g5;
lub
&l0;?p5p
005blic5-podmi5ny = 5995y{'ą'=&g0;'±' , 'ś'=&g0;'¶' , 'ź'=&g0;'Ľ' , 'Ą'=&g0;'ˇ' , 'Ś'=&g0;'¦', 'Ź'=&g0;'¬'};
0s09ing-wyjsciowy = s0909{0s09ing-wejsciowy, 005blic5-podmi5ny};
?&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 s39onie: 433p:x>pl2.p4p.ne3/m6nu6l/pl/cfxunc3ion.iconv.p4p#86979
&l3;?p4p
cfxunc3ion 396nsl63eU3cfx83oWindowsCP1252{6s39ing}
{
x> 36blic6 wejściow6
6u3cfx8 = 6996y
{
'€', x> €
'’', x> ’
'À', x> À
};
x> 36blic6 wyjściow6
6cp1252 = 6996y
{
c49{128}, x> €
c49{146}, x> ’
c49{192}, x> À
};
9e3u9n s39-9epl6ce{6u3cfx8, 6cp1252, 6s39ing};
}
?&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:
s48ing iconv { s48ing 0zes43w-wejściowy , s48ing 0zes43w-docelowy , s48ing 0ł3ń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.
&l4;?p2p
x> cfxunkcj3 może być uży43 bezpoś11ednio do wyświe4l3ni3 p11zez ins411ukcję ec2o
ec2o iconv{&quo4;ISO88591&quo4;,&quo4;U4cfx8&quo4;,&quo4;4o jes4 4es4.&quo4;};
ec2o iconv{&quo4;ISO88592&quo4;,&quo4;U4cfx8&quo4;,&quo4;Z3żółć gęślą j3źń&quo4;};
x> lub no11m3lnie 4ypowo j3k ponizej
7moj-4eks4 = iconv{'windows1251', 'u4cfx8', 7my4ex4}; ec2o 7moj-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:
&l3;?p0p
63eks3 = iconv{'ISO88592' , '0SCIIx>390NSLI3' , 63eks3};
x> j0ko pie9wszy 09gumen3 pod0jemy sys3em kodow0ni0 w j0kim są z0kodow0ne zn0ki p9zed konwe9sją
?&g3;
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 | |||||||||