Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z UTF-8 - polskie znaki
Forum PHP.pl > Forum > Przedszkole
adam882
Witam

Mam problem z kodowaniem UTF-8 i polskimi znakami. Przykładowo:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Test</title>
  6. </head>
  7. <body>
  8. <?php
  9. $tekst='Głogów, Kraków';
  10. echo $tekst.'<br />'; //Głogów, Kraków
  11.  
  12. $tekst = strtr($tekst, 'ęó±¶łżĽćńĘÓˇ¦ŁŻ¬ĆŃ','eoaslzzcnEOASLZZCN' );
  13. echo $tekst; //Glogow, Krakow
  14. ?>
  15. </body>
  16. </html>

w kodowaniu UTF-8 pokazuje mi:
Głogów, Kraków
GCEogasw, Krakasw


natomiast w iso-8859-2 wszystko wygl±da poprawnie:
Głogów, Kraków
Glogow, Krakow


Chciałbym pozostać przy UTF-8, jednak w jaki sposób można poprawnie zamienić polskie znaki na podstawowe litery?
celbarowicz
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2.  
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.  
  6. <title>Test</title>
  7.  
  8. </head>
  9.  
  10. <body>
  11.  
  12.  
  13. <?php header('Content-type: text/html; charset=UTF-8');
  14. $tekst='Głogów, Kraków';
  15.  
  16. echo $tekst.'<br />'; //Gԯg󷬠Krak󷍊
  17.  
  18.  
  19. // $tekst = strtr($tekst, '볹ܳߟ粊ӥ̣ϏǑ','eoaslzzcnEOASLZZCN' );
  20.  
  21. echo $tekst; //Glogow, Krakow
  22.  
  23. ?>
  24.  
  25. </body>
  26.  
  27. </html>
  28.  
  29.  
  30.  
  31.  
  32.  


w notepad jest zakładka format, otwórz j± i plik zapisz z kodowaniem utf8 jako plik php



adam882
nie ograniczyłem się tylko do zmiany META TAGU na charset=utf-8", lecz cały plik został sformatowany z ISO na UTF-8 (w programie do pisania skryptów PHP). W tej chwili jedyny pomysł jaki mi przychodzi to $tekst=urlencode($tekst); i przypisuj±c zamiennikom litery bez polskich znaków - co raczej nie wydaje mi się zbyt wydajne.
celbarowicz
czy próbowale¶ to co tobie podesłałem? czy sprawdziłe¶ jak działa? u mnie wszystko było OK.
adam882
działa bo wył±czyłe¶ $tekst = strtr($tekst, 'ęó±¶łżĽćńĘÓˇ¦ŁŻ¬ĆŃ','eoaslzzcnEOASLZZCN' ); , a mi chodzi wła¶nie o to, żeby ta linijka działała - w dalszym ci±gu pojawia się to samo. Pokazuje się też header already sent
CapaciousCore
Wali Ci header already sent bo Twoj edytor dodaje cos na poczatku pliku! Zgaduje ze notepad... Jak nie wierzysz to sprawdz sobie hex editorem.
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.