Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z polskimi znakami ą, ś
Forum PHP.pl > Forum > Przedszkole
zerdo
Witam
OD jakiegoś czasu męczę się żeby ustawić polskie znaki w PHP i nie mogę. Jak ma wyglądać kod żeby wszystkie polskie litery działały
Kod
<html>
<HEAD>
<meta http-equiv="content-type" content="text/html charset=ISO-8859-2">
</head>
<body>
<?PHP
print "ęóąśłżźćń";
?>
</BODY></HTML>
Grzyw
Podejrzewam, że Twój edytor ma ustawione inne kodowanie.
W czym piszesz?
sniezny_wilk
Grzyw może mieć rację.. używając np. Eclipse lub Notepad++ można łatwo zmienić kodowanie zapisywanego dokumentu. Musisz zmienić je najlepiej na UTF-8, lub w html'u zamiast: ISO-8859-2 wstaw UTF-8.. btw: jakiego używasz edytora ?
zerdo
Używam PHP Designer 2007. Zmieniałem w notatniku na UTF-8 i na stronce kodowanie na UTF-8 ale też nie działa.
W PHP Des. mogę jedynie ustawić: ANSI, UTF-8, UTF-16LE, UTF-16BE albo jest jeszcze pocja save with BOM

A w przeglądarce widać "�ż�ćńłęó"
adriano321
W PHP Designer 2007 masz opcje kodowania. Nie pamiętam dokładnie gdzie jak chcesz to poszukaj. Mi to pomogło.
Maxik
Sprawdź coś takiego:
  1. <?php
  2. define('ź','ż');
  3. define('ę','ę');
  4. define('ą','ą');
  5. define('ź','ź');
  6. define('ł','ł');
  7. define('ó','&oacute;');
  8. define('ś','ś');
  9. define('ć','ć');
  10. define('ń','ń');
  11.  
  12.  
  13. define('ź','#380;');
  14. define('ę','#281;');
  15. define('ą','#261;');
  16. define('ź','#378;');
  17. define('ł','#322;');
  18. define('ó','oacute;');
  19. define('ś','#347;');
  20. define('ć','#263;');
  21. define('ń','#324;');
  22.  
  23.  
  24. ?>

Coś nie wychodzi wstawienie tego, więc w tym drugim pododawaj przed każdym drugim parametrem ampersand(&) i styknie.
zerdo
Ok zmieniłęm kodowanie i teoretycznie pomoglo - literki polskie dzialaja! Zmienilem na UTF-8!
Tylko teraz nagle pojawil sie problem z sesją! Wyskakuje mi że

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1-8\www\index.php:1) in c:\program files\easyphp1-8\www\index.php on line 3

A jak dam znow inne kodowanie to jest dobrze. Pliki są identyczne i różnią sie tylko kodowaniem! Co można z tym zrobić??
Maxik
daj session_start(); przed całą stroną, czyli:
Kod
<?php session_start(); ?>
<html>
<HEAD>
<meta http-equiv="content-type" content="text/html charset=ISO-8859-2">
</head>
<body>
<?PHP
print "ęóąśłżźćń";
?>
</BODY></HTML>
sniezny_wilk
@maxik: niekoniecznie.

Jeśli zmieniłeś kodowanie, na początku pliku powstały "krzaczki", których nie widać, ale tam są.. kiedyś z tym walczyłem pamiętam i pomogła opcja "save with BOM", spróbuj.
zerdo
No jak dam kodowanie na UTF-8 w przeglądarce to działa wszystko ładnie! tylko jak dam w kodzie
Kod
<META http-equiv=content-type content="text/html; charset=utf-8">


to wtedy nie ustawia automatycznie przegladarki na UTF-8. Jak to można rozwiązać?
potreb
Kod
<meta http-equiv="content-type" content="text/html; charset=utf-8">
zerdo
Ale to nic nie zmienia. Dalej jak sprawdzam kodowanie mam ustawione na ISO zamiast na UTF-8. I dalej żle wyświetla bez zmienienia kodowania ręcznie na stronce.
Kicok
1. Porównaj jeszcze raz twój kod, z tym co podał potreb. Może faktycznie ten cudzysłów ci wszystko psuje.

2. Jesli to nic nie da to przed wysłaniem do przeglądarki jakiejkolwiek treści wyślij jeszcze taki nagłówek:
  1. <?php
  2.  
  3. header( 'Content-Type: text/html; charset=utf-8' );
  4.  
  5. ?>
potreb
Albo masz zdefiniowany wczesniej meta gdzies dla iso
zerdo
W samym html i PHP jest już ok- tylko jak pobieram dane z bazy to wtedy mam kwadraciki zamiast polskich liter! Mam ustawione kodowanie na UTF-8 i w mysql i w php. Jak to rozwiązać??
I dodatkowo żle zapisuje do bazy mysql dane wprowadzane w PHP. Wychodzą w bazie jakieś krzaczki!
Wogóle jak wyswietlam strone to tak jakby dane z mysql byly kodowane w srodkowoeuropejskim a dane z html i php w UTF-8.
Dziwne to jest dla mnie bo w mysql mam ustawione ze UTF-8
potreb
Wstaw do połączenia z bazą:
mysql_query("SET NAMES utf8");

np:
  1. <?php
  2. mysql_connect($DBhost,$DBuser,$DBpass);
  3. mysql_query("SET NAMES utf8");
  4. mysql_select_db($DBname);
  5. ?>
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.