dodaj tą stronę do ulubionych     
użytkownicy online 20, liczba odwiedzin: 1254639
książki i porady dla programistów i webmasterów porady dla budujących strony internetowe i webmasterów jezus jest królem polski wagi

dołącz do modlących się o cud

poradnik programisty

taśmy zebra
taśmy zebra


wózki sklepowe

wagi vibra

Wagi dźwigowe
wagi dźwigowe


wagi ohaus

wózki transportowe
. 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 Page copy protected against web site content infringement by Copyscape
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.
Należy tylko przestrzegać zasady: Jeśli chcemy skonwertować tekst zapisany w pliku tekstowym UTF-8, to skrypt musi mieć też takie kodowanie.
Nie jest istotne natomiast do jakiego kodowania będzie plik docelowo przeznaczony.
Skrypt ma jedną wadę: zamienia tylko polskie litery - nie konwertuje żadnych innych znaków. Więc nadaje się tylko do konwersji tekstu.

Funkcja iconv
Do konwersji wszystkich znaków można zastosować nową instrukcję PHP o nazwie iconv.
Opis tej instrukcji znajdziecie na stronie http://pl.php.net/manual/pl/function.iconv.php
Ta instrukcja ma też wiele innych odmian i zastosowań: http://pl.php.net/iconv
Ale uwaga, ta instrukcja jest nowa i ma jeszcze błędy... w 2008 roku dla niektórych znaków z UTF-8 (np. znak cala) instrukcja źle je konwertowała do innych systemów.
Więc podczas konwersji złożonych kodów html mogą wystąpić błędy.
Natomiast można się spodziewać, że w 2009 roku błędy zostaną naprawione, więc warto się tej instrukcji powoli uczyć.
Można np. zrobić listę źle tłumaczonych znaków i przed konwersją je wyrzucać. Są to znaki wyjątkowo mało używane w kodach stron.
Normalny programista nigdy nie wrzuca takich znaków do kodu.
Znajdują się w kodach przeważnie na skutek korzystania z edytorów nieprzystosowanych do HTML-a.
Oto próba rozwiązania tego problemu: http://www.elider.pl/329_jak_prawidłowo_przetwarzac_znaki_utf_8.html

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.
Oto pewien przykład zastosowania. Skrypt pozwala na usunięcie ogonków z polskich liter (również z innych narodowości).
Zamienia ą na a, ć na c itd.
Oto ten skrypt:

&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

  • Page copy protected against web site content infringement by Copyscape

    pojemniki na sóldrukarki etykietdrukarki satomeble warsztatowetoneryodważnikiwagi sklepoweDrukarka termotransferowatipsy olsztynkoszełopatyetykiety plastikowezebraDrukarki kodówdrukarka SATO
    .
    edyta wakulińska

    tanie tonery

    pojemniki na piasek

    świece liturgiczne

    meble warsztatowe

    wózki magazynowe

    tanie wagi elektroniczne

    tanie drukarki zebra

    wagi axis

    wózki narzędziowe
    wózki narzędziowe
      | 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