![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 12.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym tym tematem rozpocząć dyskusję na temat właściwego kodowania pisanych stron czy kodowanie za pomocą iso-8859-2 czy UTF-8.
Bardzo wielu z nas posługuje się konwersją iso-8859-2 - ale przy tym zastosowaniu pojawia się wile problemów. Proszę zamieszczać odpowiedzi dotyczące: 1) Właściwego sposobu kodowania w php 2) Właściwego sposobu zapisywania treści do baz danych - jaką konwersją 3) Odczytywanie lub przekonwertowanie starych wpisów do baz za pomocą ISO na UTF (i odwrotnie jeżeli by ktoś chciał) 4) Jak kodować same znaki do UTF aby właściwie się wyświetlały - czego używać 5) Jakie meta tagi używać i czy stosować header()? Myślę że każdy z nas boryka się z takimi problemami, tak więc piszcie i zadawajcie kolejne pytania. Mam nadzieję, że wielu z nas odnajdzie w tym temacie wiele istotnych informacji Ten post edytował smarcz 16.09.2007, 16:28:01 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 150 Pomógł: 3 Dołączył: 15.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
zawsze używaj UTF-8 to ma same plusy
![]() skoro wszystko bedzie w UTF-8 to nie potrzeba żadnej konwersji! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 1 Dołączył: 1.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jesli korzystasz z utf8 i mysqla, upewnij sie ze masz wersje mysqla 4.1 lub wyzsza - wtedy wspolpraca jest o wiele latwiejsza bo mysql za ciebie cala konwersje robi i nie musisz sie martwic czy dany serwer ma iconv wlaczone czy nie. Pomocne jest to rowniez jak masz stary text np. w iso-8859-2.
Jak uzyjesz na stronie <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> to to wystarczy. Nie musisz potem headerow uzywac, ale jezeli przechowujesz text z tzw. "krzaczkami" w pliku php, nie zapomnij go zakodowac jako utf8 w swoim edytorze. Jesli tylko wyswietlasz tekst z bazy bez przetwarzania go, to nie musisz sie martwic mbstring. Jezeli jednak zamierzasz go przetwarzac i wiesz ze na twoim serwerze nie ma mbstring, zawsze mozesz uzyc php utf8. To tyle odemnie. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Spotkałem się z serwerami, które domyślnie wysyłały nagłówek:
Kod Content-Type: text/html; charset=iso-8859-1 Zastosowanie w takim przypadku tagu <meta niewiele dawało, bo dla przeglądarki ważniejsze były informacje z nagłówka. Dlatego IMHO warto poświęcić tą jedną dodatkową linijkę kodu na:
żeby w razie czego nadpisać domyślny Content-Type. No i jeśli zamierzamy kodować w UTF-8 to wypadałoby się o nim czegoś dowiedzieć, np. że niektóre edytory wstawiają na początku pliku BOM, który PHP traktuje jako zwykły tekst. Albo że znaki zakodowane w UTF-8 są zapisywane pod zmienną ilością bajtów. Dzięki temu nie będziemy ślęczeli godzinami nad problemem typu:
Ponoć PHP6 ma być bardziej UTF8-friendly. Zobaczymy, może problemy jak ten powyższy z strtr" title="Zobacz w manualu PHP" target="_manual znikną -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 12.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
No dobrze, ale co w przypadku gdy ktoś ma napisany cały kod serwisu i jest on zakodowany ISO a nie UTFem. Jak przekonwertować wszystkie pliki. Czy wystarczy wstawić same znacznik <meta http-equiv="Content-Type" content="text/html; charset=utf-8">?
Chyba nie? Kodowanie znaków jest inne - czym to wykonać - jakiś program - do ISO są gotowe klawiatury pod windowsa automatycznie zmieniające polskie znaki na właściwie zakodowane a co z UTFem w takim przypadku? Czym się posługiwać. Proszę o jasne wyjaśnienia z czego skorzystać - jakie narzędzia? Może jakieś własne pomysły przekodowywania znaków za pomocą php? Dziękuję i proszę o włączanie się do dyskusji. Co sądzicie o edytorze Pajączek do pisania właśnie za pomocą UTFa - ma on podobno konwerter znaków? Musze zaznaczyć, że w moim przypadku właściwe kodowanie w UTFie otrzymałem dopiero po zastosowaniu nagłowka header() Ten post edytował smarcz 18.09.2007, 11:15:47 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 22.05.2025 - 03:43 |