Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML] Dziwny problem z kodowaniem utf-8
Forum PHP.pl > Forum > Przedszkole
-Kamil-
Witajcie, zwracam się do was z bardzo dziwnym problemem, a mianowicie próbuje ustawić kodowanie polskich znaków,

oto fragment kodu:

  1. <?php header('Content-type: text/html; charset=utf-8'); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
  4. <head>
  5. <title></title>
  6.  
  7. <meta name="description" content="" />
  8. <meta name="keywords" content="" />
  9. <meta name="author" content="" />
  10. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  11.  
  12. <link media="all" type="text/css" rel="stylesheet" href="<?php echo base_url(); ?>css/reset.css"/>
  13. <link media="all" type="text/css" rel="stylesheet" href="<?php echo base_url(); ?>css/login_style.css"/>
  14.  
  15.  
  16.  
  17.  
  18. </head>


dziwność tego problemu polega na tym iż jeżeli jest to szablon html to polskie znaki wyświetlają się normalnie jeżeli jednak zapisze to jako plik widoku i wyświetle w CodeIgniterze to kodowanie nie działa. Dodam jeszcze że próbowałem różnych ustawień, BOM i bez BOM, iso itd. Nic nie działa.

Pomożecie? biggrin.gif
abort
Dziwne, u mnie działa. Ja mam w application/config/config.php:
  1. $config['charset'] = 'UTF-8';


I dlaczego header() przed DOCTYPE? Spróbuj tak (muszę to przerobić na to, co oferuje HTML helper, ale jakoś nigdy nie mam czasu smile.gif Anyway, html mam taki:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


Pliki zapisuję jako UTF8 bez BOM i mi wszystko działa. CodeIngniter 2.1.0
Kiui
posprawdza sobie to tym programem Notepad++. bardzo mi pomógł jak miałem problemy tez nie dawno

może też ci się przyda to: Temat: PHPMySQLPolskie znaki nie sa pobierane z bazy
Czarny86
dzięki za pomoc ale brak efektów ;/ czy może to być wina systemu(windows 7 64bit)? Istnieje wogóle takie prawdopodobieństwo?
abort
Może to dziwnie zabrzmi, ale pokaż, jak wygląda strona (jako źródło) wygenerowana przez CodeIgnitera (z użyciem wywoływania widoku).
Czarny86
Nie wiem czy o to Ci dokładnie chodzi,

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.  
  5.  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  7. <meta name="description" content="" />
  8. <meta name="keywords" content="" />
  9. <meta name="author" content="" />
  10.  
  11.  
  12. <link media="all" type="text/css" rel="stylesheet" href="http://localhost/CodeIgniter/projekt/css/reset.css"/>
  13. <link media="all" type="text/css" rel="stylesheet" href="http://localhost/CodeIgniter/projekt/css/login_style.css"/>
  14.  
  15. <script type="text/javascript">var base_url = 'http://localhost/CodeIgniter/projekt/'; var ilosc ='3'</script>
  16.  
  17. <script type="text/javascript" src="http://localhost/CodeIgniter/projekt/js/jquery-1.8.1.min.js"></script>
  18. <script type="text/javascript" src="http://localhost/CodeIgniter/projekt/js/login_slider.js"></script>
  19.  
  20.  
  21. </head>
  22. <body>
  23. <div id="wrapper">
  24. <div id="header"></div><div id="content">
  25. <div id="left">
  26.  
  27. <hr class="large"/>
  28.  
  29. </div><div id="right">
  30. <h1>Panel Logowania</h1>
  31. <p>Aby rozpocz�� korzystanie z serwisu naley si zalogowa korzystajc ze swojego <strong>numeru ID</strong> </p>
  32. <hr class="small"/>
  33. <form action="" method="post" accept-charset="utf-8"><p class="footer_text">Tu Wpisz swoj numer ID</p><input type="text" name="login" value="" id="login" class="text" /><p class="footer_text">Tu Wpisz Haslo:</p><input type="password" name="password" value="" id="password" class="text" /><input type="submit" name="submit" value="ZALOGUJ" class="button" /></form> </div></div>
  34. <div id="footer">
  35. <hr class="large"/>
  36.  
  37. <p class="footer_text">Wszelkie prawa zastrzeone</p>
  38. <p class="footer_text">2012</p>
  39. </div>
  40. </div>
  41. </body>
  42. </html>
abort
Nie wiem dlaczego, ale po skopiowaniu (klikam na "pobierz" przy kodzie, który umieściłeś) na dysk lokalny mam wszędzie encje postaci &#65533 - to nie są polskie litery.
Otwórz sobie swój plik z widokiem, wejdź na menu "format" i wybierz "konwertuj na format UTF8 bez BOM".
Nie wiem, czy przez eksperymenty Notepad++ nie zgłupiał i czy jakimś dziwnym trafem kodowanie się nie rozjechało. Widzę, że to mały kod, więc masz ewentualność: usunąć polskie znaczki (WSZYSTKIE), skonwertować na ANSI (to jest zresztą default jak nie ma znaków spoza kodu ASCII), a potem dodać polskie literki, i wybrać na "konwertuj na format UTF8 bez BOM". U mnie działa. Znaczy się: jak dopiszę polskie litery i w stronie widzę krzaki, to wystarczy przekonwertować, zapisać plik i odświeżyć stronę. Notepad++ wersja 6.1.3
Czarny86
HAHAHAHA zaskoczyło biggrin.gif działa smile.gif Dziwne że przedtem też konwertowałem na utf-8 bez BOM ale kurde nie pomyślałem o tym żeby polskie ogonki dopisać biggrin.gif dzięki wielkie smile.gif
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.