Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z UTF-8 - polskie znaki
adam882
post
Post #1





Grupa: Zarejestrowani
Postów: 289
Pomógł: 1
Dołączył: 2.11.2007

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


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?

Ten post edytował adam882 25.12.2009, 13:50:05
Go to the top of the page
+Quote Post
celbarowicz
post
Post #2





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


  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



Go to the top of the page
+Quote Post
adam882
post
Post #3





Grupa: Zarejestrowani
Postów: 289
Pomógł: 1
Dołączył: 2.11.2007

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


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.

Ten post edytował adam882 25.12.2009, 18:38:23
Go to the top of the page
+Quote Post
celbarowicz
post
Post #4





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


czy próbowaleś to co tobie podesłałem? czy sprawdziłeś jak działa? u mnie wszystko było OK.
Go to the top of the page
+Quote Post
adam882
post
Post #5





Grupa: Zarejestrowani
Postów: 289
Pomógł: 1
Dołączył: 2.11.2007

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


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

Ten post edytował adam882 2.01.2010, 09:31:09
Go to the top of the page
+Quote Post
CapaciousCore
post
Post #6





Grupa: Zarejestrowani
Postów: 30
Pomógł: 4
Dołączył: 28.09.2009
Skąd: Chełm

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


Wali Ci header already sent bo Twoj edytor dodaje cos na poczatku pliku! Zgaduje ze notepad... Jak nie wierzysz to sprawdz sobie hex editorem.
Go to the top of the page
+Quote Post

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: 23.12.2025 - 18:40