Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kodowanie, i polskie znaki
-ziutek-
post
Post #1





Goście







Witam.

Bardzo wiele problemów przy pracy stwarzają polskie ogonki. Oczywiście, niektórzy z nich rezygnują, ale niestety nie wszyscy. Chciałbym zebrać garść porad odnośnie tego problemu. Może ja zacznę, jeśli pisze głupoty - proszę o poprawę.

Zwykły html i polskie znaki, wystarczy dodać w sekcji <head> odpowiedni znacznik <meta>:

  1. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />

wówczas wszystkie nasze ąćęłńóśźż wyświetlane są poprawnie. Jeśli kod to czysty HTML, problemów raczej nikomu to nie sprawia.

Ale problemy pojawiają się, gdy zaczynamy dodawać do tego php. Bardzo często zdarza się, że wówczas (np. używając szablonów Smarty, czy też podczas wysyłania maili - zarówno w formacie HTML jak i textowym) polskie znaki zamieniają się w krzaczki. Co więc należy zrobić w przypadku np. Smarty, żeby te polskie znaki pojawiały się? Sam meta tag nie wystarcza, jeśli ktoś nie wierzy, mogę pokazać przykład. To samo tyczy się wysyłania maili funkcją mail().
Istnieje oczywiście np. iconv(), ale czy to jedyne wyjście?

A jeszcze więcej problemów pojawia się, kiedy przyjdzie nam korzystać z MySQL (sam niejednokrotnie robiąc backupa bazy poprzez phpmyadmina zamiast polskich znaków, dostałem krzaczki - a problem nie pojawia się tylko przy backupie).

Z przeczytanych postów gdzieniegdzie informacji wnioskuje, że aby polskie znaki chodziły wszędzie tak, jak należy, kodowanie zarówno HTML, jak i php i MySQL powinno być takie samo.

Jak zrobić? W niektórych momentach naprawdę już człowiek nie ma siły szukać, a być może ktoś już przez te problemy przebrnął i ma jakiś skuteczny na to sposób.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Nostress
post
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 28.05.2006

Ostrzeżenie: (0%)
-----


To może i ja się czegoś dowiem. Wspominane tu było o wysyłaniu maila i problemie polskich znaków nim. Jak to wysyłać tak, żeby tych problemów nie było? Mam przykładową stronę, zawierającą formularz (pola temat, treść i submit) oraz strona zapisana (w PsPadzie) przy kodowaniu utf-8 oraz meta tag z utf-8.

Po kliknięciu na submit wysyła maila do dwóch adresatów: jeden ma poczte na poczta.fm, drugi na gmail.com. W obu przypadkach w temacie i treści wpisuje wszystkie polskie znaki. Co się okazuje? Że na gmail.com znaczki interpretowane są dobrze, zaś na poczta.fm wyskakują tylko i wyłącznie krzaczki. Czy można coś z tym zrobić?

Kod za to odpowiedzialny:

  1. <?php
  2.  
  3. if( $_POST['temat'] != '' )
  4. {
  5. $header .= "From: mail@example.comn";
  6. $header .= "Content-Transfer-Encoding: 8bitn";
  7. $header .= "MIME-Version: 1.0n";
  8. $header .= "Content-type: text/html; charset=utf-8n"; 
  9.  
  10. mail( 'mail@poczta.fm,mail@gmail.com', $_POST['temat'], $_POST['tresc'], $header );
  11. }
  12.  
  13. ?>
  14.  
  15. //tutaj kod html strony, włączając meta tag z kodowaniem utf-8
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 21:21