Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: problem z utf-8
Forum PHP.pl > Forum > PHP
wojto
Witam,
Mam problem z ustawieniem kodowania plikow na utf-8.
Zawartosc plikow wyglada nastepujaco:

index.php
  1. <?php
  2. require_once('header.php');
  3. ?>
  4.  
  5. próba znaków<br />
  6. ±æê³ñó¶¿¼<br />
  7. ¡Æ£ÑÓ¦¯¬


header.php
  1. <?php
  2. if (basename(__FILE__) == basename($_SERVER['PHP_SELF'])) {
  3. exit('Nie mo¿esz otworzyæ tego pliku bezpo¶rednio !');
  4. }
  5.  
  6. require_once('config.php');
  7. ?>
  8. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  9. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  10. <head>
  11. <meta http-equiv="Content-Language" content="pl" />
  12. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  13. <title>tytu³</title>
  14. </head>
  15.  
  16. <body>


config.php
  1. <?php
  2.  
  3. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  4. header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
  5. header("Cache-Control: no-store, no-cache, must-revalidate");
  6. header("Cache-Control: private, pre-check=0, post-check=0, max-age=0", false);
  7. header("Pragma: no-cache");
  8.  
  9. if (basename(__FILE__) == basename($_SERVER['PHP_SELF'])) {
  10. exit('Nie mo¿esz otworzyæ tego pliku bezpo¶rednio !');
  11. }
  12. ?>


jak widac ustawione jest kodowanie na utf-8, pliki takze sa zakodowane programem w utf-8

po uruchomieniu wyswietla poprawnie polskie znaki, jednak wyswietla tez jakies bledy:
Kod
Warning: Cannot modify header information - headers already sent by (output started at c:\usr\apache\httpd\html\tmp\index.php:1) in c:\usr\apache\httpd\html\tmp\config.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at c:\usr\apache\httpd\html\tmp\index.php:1) in c:\usr\apache\httpd\html\tmp\config.php on line 5

Warning: Cannot modify header information - headers already sent by (output started at c:\usr\apache\httpd\html\tmp\index.php:1) in c:\usr\apache\httpd\html\tmp\config.php on line 6

Warning: Cannot modify header information - headers already sent by (output started at c:\usr\apache\httpd\html\tmp\index.php:1) in c:\usr\apache\httpd\html\tmp\config.php on line 7

Warning: Cannot modify header information - headers already sent by (output started at c:\usr\apache\httpd\html\tmp\index.php:1) in c:\usr\apache\httpd\html\tmp\config.php on line 8
próba znaków
±æê³ñó¶¿¼
¡Æ£ÑÓ¦¯¬


co nalezy zmienic, aby tego nie bylo?

pozdrawiam i dziekuje za odpowiedzi
hwao
daj w index.php
  1. <?php
  2. ?>

a nie tam potem,

Pozatym jak edytujesz edytorem nie miejacym wsparcia utl (notanik) to dodaje on "krzaki" na poczatku.
strife
http://php.pl/artykuly/dla_poczatkujacych/...ch_programistow

na samym dole.. winksmiley.jpg
wojto
@hwao, jak dam ob_start(); na poczatku index.php, to dalej sa te same bledy (poza tym jesli includuje te pliki, to tak jakby ob_start() u mnie bylo na poczatku pliku, z iso-8859-2 tak dzialalo)
wiem, ze czasami krzaki sa dodawane na poczatku pliku, ale moj edytor wspiera utf-8

doszedlem do tego, ze po usunieciu tych linijek:
Kod
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: private, pre-check=0, post-check=0, max-age=0", false);
header("Pragma: no-cache");
nie wyswietla juz tych bledow

czy jest mozliwe, ze przy utf-8 nie mozna ich stosowac?

ps. @scarface: jakbys nie zauwazyl, to u mnie ob_start() jest smile.gif


// edit: moze ktos stworzyc takie 3 pliki i sprawdzic, czy u niego dziala, bo moze moj edytor zle obsluguje utf-8?


// eidt2:
ok, wstawilem wszystko do jednego pliku:
  1. <?php
  2.  
  3. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  4. header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
  5. header("Cache-Control: no-store, no-cache, must-revalidate");
  6. header("Cache-Control: private, pre-check=0, post-check=0, max-age=0", false);
  7. header("Pragma: no-cache");
  8. ?>
  9.  
  10. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  11. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  12. <head>
  13. <meta http-equiv="Content-Language" content="pl" />
  14. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  15. <title>tytu³</title>
  16. </head>
  17.  
  18. <body>
  19.  
  20. próba znaków<br />
  21. ±æê³ñó¶¿¼<br />
  22. ¡Æ£ÑÓ¦¯¬
  23.  
  24. </body>
  25. </html>
  26.  
  27. <?php
  28. ?>
i dalej wyswietla to samo :/ wtf?
dr_bonzo
Chyba chodzi o BOM (Byte Order Mark) w Unicode, 3 bajty (chyba 3?questionmark.gif)dodawane przez edytory na poczatku pliku. Sproboj innego edytora Notepad2, SciTE (oba na scintilli), bo chyb nie pracujes pod linuxem.
wojto
@dr_bonzo: wlasnie uzywam notepad2 :/

moze ktos sprawdzic u siebie ten ostatni kod i napisac, czy u niego dziala?

//edit: dzieki scarface, rzeczywiscie w pspadzie jest ok
tak wiec moj ulubiony notepad2 zle obsluguje utf-8 sad.gif

sorki za zamieszanie
strife
Cytat(wojto @ 2005-08-27 15:11:39)
@dr_bonzo: wlasnie uzywam notepad2 :/

moze ktos sprawdzic u siebie ten ostatni kod i napisac, czy u niego dziala?

U mnie piêknie ¶miga - program PsPad...

@wojto - powiem Ci ¿e teraz nie wyobra¿am sobie pracy bez tego programu, polecam...
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.