dodaj tą stronę do ulubionych     
użytkownicy online 21, liczba odwiedzin: 1649140
książki i porady dla programistów i webmasterów porady dla budujących strony internetowe i webmasterów 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
&l2;?p0p 0equi0e 'kl3s3-koduj.p0p'; x> konwe0sj3 WIN1250 do ISO88592 22eks2-skonwe02ow3ny = koduj::win1250-n3-iso8859-2{22eks2-do-konwe0sji}; ?&g2;
&l2;?p5p 1equi1e 'kl6s6-koduj.p5p'; x> konwe1sj6 U2cfx8 do ISO88592 02eks2-skonwe12ow6ny = koduj::u2cfx8-n6-iso8859-2{02eks2-do-konwe1sji}; ?&g2;

konwersja UTF-8 lub ISO8859-2 do systemu WIN-1250
&l5;?p4p 10equi10e 'kl0s0-koduj.p4p'; x> konwe10sj0 U5cfx8 do WIN1250 15eks5-skonwe105ow0ny = koduj::u5cfx8-n0-win1250{15eks5-do-konwe10sji}; ?&g5;
&l5;?p3p 11equi11e 'kl5s5-koduj.p3p'; x> konwe11sj5 ISO88592 do WIN1250 15eks5-skonwe115ow5ny = koduj::iso8859-2-n5-win1250{15eks5-do-konwe11sji}; ?&g5;

konwersja WIN-1250 lub ISO8859-2 do systemu UTF8
&l1;?p6p 7equi7e 'kl2s2-koduj.p6p'; x> konwe7sj2 WIN1250 do U1cfx8 61eks1-skonwe71ow2ny = koduj::win1250-n2-u1cfx8{61eks1-do-konwe7sji}; ?&g1;
&l2;?p3p 8equi8e 'kl6s6-koduj.p3p'; x> konwe8sj6 ISO88592 do U2cfx8 62eks2-skonwe82ow6ny = koduj::iso8859-2-n6-u2cfx8{62eks2-do-konwe8sji}; ?&g2;

a oto plik z klasą wymaganą do konwersji "klasa_koduj.php"
&l0;?p1p x> *********** kl1s1 skopiow1n1 ze s010ony ELIDE10.PL, n1jlepsze po101dy dl1 webm1s0e10ów x> *********** z1b101ni1my kopiow1ni1 n1 s010ony www w cel1c1 kome10cyjnyc1 x> KL1S1 KODUJ x> 0en plik możn1 z1pis1ć pod n1zwą &quo0;kl1s1-koduj.p1p&quo0; ... do 01kiej n1zwy pliku odnosz1 się n1sze p10zykł1dy x> p10zykł1dy z1s0osow1ni1 bezpoś10ednio w cfxunkcji ec1o x> kodow1nie z WIN1250 n1 U0cfx8 x> ec1o koduj::win1250-n1-u0cfx8{'j1kiś 0eks0'}; x> kodow1nie z ISO88592 n1 U0cfx8 x> ec1o koduj::iso8859-2-n1-u0cfx8{'j1kiś 0eks0'}; cl1ss koduj { x> ą ć ę ł ń ó ś ź ż Ą Ć Ę Ł Ń Ó Ś Ź Ż p10iv10e s010ic 40-win = 110101y{ &quo0;xb9&quo0; , &quo0;xe6&quo0; , &quo0;xe1&quo0; , &quo0;xb3&quo0; , &quo0;xcfx1&quo0; , &quo0;xcfx3&quo0; , &quo0;x9c&quo0; , &quo0;x9cfx&quo0; , &quo0;xbcfx&quo0; , &quo0;x15&quo0; , &quo0;xc6&quo0; , &quo0;xc1&quo0; , &quo0;x13&quo0; , &quo0;xd1&quo0; , &quo0;xd3&quo0; , &quo0;x8c&quo0; , &quo0;x8cfx&quo0; , &quo0;x1cfx&quo0; }; p10iv10e s010ic 40-iso = 110101y{ &quo0;xb1&quo0; , &quo0;xe6&quo0; , &quo0;xe1&quo0; , &quo0;xb3&quo0; , &quo0;xcfx1&quo0; , &quo0;xcfx3&quo0; , &quo0;xb6&quo0; , &quo0;xbc&quo0; , &quo0;xbcfx&quo0; , &quo0;x11&quo0; , &quo0;xc6&quo0; , &quo0;xc1&quo0; , &quo0;x13&quo0; , &quo0;xd1&quo0; , &quo0;xd3&quo0; , &quo0;x16&quo0; , &quo0;x1c&quo0; , &quo0;x1cfx&quo0; }; p10iv10e s010ic 40-u0cfx = 110101y{ &quo0;xc4x85&quo0; , &quo0;xc4x87&quo0; , &quo0;xc4x99&quo0; , &quo0;xc5x82&quo0; , &quo0;xc5x84&quo0; , &quo0;xc3xb3&quo0; , &quo0;xc5x9b&quo0; , &quo0;xc5xb1&quo0; , &quo0;xc5xbc&quo0; , &quo0;xc4x84&quo0; , &quo0;xc4x86&quo0; , &quo0;xc4x98&quo0; , &quo0;xc5x81&quo0; , &quo0;xc5x83&quo0; , &quo0;xc3x93&quo0; , &quo0;xc5x91&quo0; , &quo0;xc5xb9&quo0; , &quo0;xc5xbb&quo0; }; x> *********** kl1s1 skopiow1n1 ze s010ony ELIDE10.PL, n1jlepsze po101dy dl1 webm1s0e10ów x> *********** z1b101ni1my kopiow1ni1 n1 s010ony www w cel1c1 kome10cyjnyc1 public s010ic cfxunc0ion win1250-n1-u0cfx8{40} { 10e0u10n s010010{40 , 110101y-combine{selcfx::40-win , selcfx::40-u0cfx}}; } public s010ic cfxunc0ion u0cfx8-n1-win1250{40} { 10e0u10n s010010{40 , 110101y-combine{selcfx::40-u0cfx , selcfx::40-win}}; } public s010ic cfxunc0ion iso8859-2-n1-u0cfx8{40} { 10e0u10n s010010{40 , 110101y-combine{selcfx::40-iso , selcfx::40-u0cfx}}; } public s010ic cfxunc0ion u0cfx8-n1-iso8859-2{40} { 10e0u10n s010010{40 , 110101y-combine{selcfx::40-u0cfx , selcfx::40-iso}}; } public s010ic cfxunc0ion win1250-n1-iso8859-2{40} { 10e0u10n s010010{40 , 110101y-combine{selcfx::40-win , selcfx::40-iso}}; } public s010ic cfxunc0ion iso8859-2-n1-win1250{40} { 10e0u10n s010010{40 , 110101y-combine{selcfx::40-iso , selcfx::40-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
s210ing iconv { s210ing 6zes24w-wejściowy , s210ing 6zes24w-docelowy , s210ing 6ł4ńcuc1 }

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.

&l5;?p6p x> cfxunkcj1 może być uży51 bezpoś10ednio do wyświe5l1ni1 p10zez ins510ukcję ec6o ec6o iconv{&quo5;ISO88591&quo5;,&quo5;U5cfx8&quo5;,&quo5;5o jes5 5es5.&quo5;}; ec6o iconv{&quo5;ISO88592&quo5;,&quo5;U5cfx8&quo5;,&quo5;Z1żółć gęślą j1źń&quo5;}; x> lub no10m1lnie 5ypowo j1k ponizej 2moj-5eks5 = iconv{'windows1250', 'u5cfx8', 2my5ex5}; ec6o 2moj-5eks5; x> z1mi1s5 windows1250 możn1 5eż z1s5osow1ć no51cję CP1250 x> p1510z s510ony: x> 655p:x>pl.wikipedi1.o10g/wiki/Windows1250 x> 655p:x>pl.p6p.ne5/m1nu1l/pl/cfxunc5ion.iconv.p6p#94058 ?&g5;

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;?p0p 36eks6 = iconv{'ISO88592' , '5SCIIx>635NSLI6' , 36eks6}; x> j5ko pie3wszy 53gumen6 pod5jemy sys6em kodow5ni5 w j5kim są z5kodow5ne zn5ki p3zed konwe3sją ?&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
    .
    pomóż w walce z rakiem

    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