Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z polskimi znakami oraz znakiem ©
Forum PHP.pl > Forum > PHP
Zeelof
Co muszę zrobić aby na mojej witrynie były widoczne polskie znaki i znak ©?
Po użyciu tego:
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
</head>
Nadal nie działa poprawnie ponieważ nie widzę np litery "ś" będź "©".
ś = �
© = Š

Jak zrobić by było tak jak powinno?
ayeo
Witaj!

Temat był poruszany milion (słownie: milion) razy! Skorzystaj z wyszukiwarki zanim napiszesz nowy temat. Plik masz zapisany jako UTF-8, a w meta masz ustawione ISO-8859-2.

Pozdrawiam!
piotrooo89
jak zakodowałeś plik ze stroną? w iso?
Zeelof
Cytat(piotrooo89 @ 10.11.2008, 15:43:05 ) *
jak zakodowałeś plik ze stroną? w iso?


Tak ale kodem html a to nic nie daje
piotrooo89
nie pytam w czym pisałeś stronę bo tu nie masz dużych możliwości pytam jakiego zestawu znaków kodujących użyłeś kodując plik z ową stroną czy jest to iso, utf, ANSI ?
ayeo
W meta dajesz ISO, ale plik masz w UTF-8! Zmień kodowanie pliku! Przeglądarka bierze go za ISO-8859-2 (bo tak podałeś w meta), ale to jest UTF-8! Patrz wyżej!

Pozdrawiam!
nexis
W PSPad robisz to przykładowo tak:

Zeelof
Po tej zmianie jest dokładnie to samo. Jednak jak zmienie na UTF-8 znak © już działa jednak przestaje działać "ć" znalazłem jeszcze coś takiego: http://forum.dobreprogramy.pl/%5C/viewtopi...18&t=115107 jednak nie chce co linijka kodu wstawiać grubej ilości innego kodu.
lukaszgolder
Po tym jak zmienisz, spróbuj na nowo napisać polskie znaki.
Zeelof
Już działa dałem to:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-type" content="text/html; charset=windows-1250">
<meta http-equiv="Content-Language" content="pl">
</head>
</html>
ayeo
Nie jest to dobry pomysł z tym windows-1250 smile.gif Zapisz plik z kodowaniem utf8 i takie samo ustaw w pliku html w znacznikach meta. Teraz to Ci się tylko wydaje, że działa biggrin.gif

Pozdrawiam!

PS Jak wklejasz kod to ZAWSZE używaj znaczników BBcode!
Zeelof
To w takim razie jak to ustawić by działało poprawnie? Jak powinien wyglądać przykładowy kod?

Skoro u mnie wygląde to tak:

Kod
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-type" content="text/html; charset=windows-1250">
    <meta http-equiv="Content-Language" content="pl">
  </head>
</html>

<?php
  echo ('Š TREŚĆ');
?>


i wszystko działa wg mnie poprawnie i mam to zapisane jako ANSI to co wg ciebie powinno być inaczej?


Chyba ze podpowiesz jak zrobić by wszystko było kodowane jako ISO 8859-2 a jedno miejsce jako UTF-8
ayeo
Witaj!

Wydaje mi się, że nie do końca rozumiesz. Mieszają Ci się pojęcia. Zapomnij na chwilkę o html'u. Nie ważne co masz w tym pliku, ważne w jakim kodowaniu ten plik zapisujesz! Poszukaj w opcjach swojego edytora, na pewno jest funkcja zmiany kodowania. Jak zmienisz kodowanie w swoim edytorze to sam zobaczysz co było nie ze stronką i dlaczego.

Pozdrawiam!
Zeelof
Kodowanie zmieniam cały czas i nadal nie chce to zadziałać jak powinno. Używam PSPad'a.

Może inaczej... Po zmianie kodowania dostaje polskie litery ale nie ma Š i teraz o ten znak mi chodzi ;P

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`

hymmm nie wiem jak to sie stało ale pobawiłem sie tym troche i zadziałało tongue.gif dzięki za pomoc biggrin.gif
ayeo
Witam smile.gif

1. Stwórz sobie nowy plik: nowy.html
2. Kodowanie ustaw na utf8
3. W znacznikach meta zestaw znaków określ jako utf8
4. Napisz sobie coś w stylu (w tym pliku) ąęćźżśłńó
5. Zapisz plik
6. Otwórz w przeglądarce
7. Napisz wynik tutaj smile.gif

Uwaga: kolejność jest ważna!

Pozdrawiam!
Zeelof
Stało sie to czego sie spodziewałem czyli znaki ąęćźżśłńó sie wypisały ale w pliku PHP to nie chce działać (działało chwile i juz nie działa)
Sławo
U mnie po wykonaniu czynności z postu powyżej ukazał się taki oto tekst:

��柿����

Już pomału szału dostaję z tym ... kodowaniem. sciana.gif
Szunaj85
Musisz się zastanowić jakiego kodowania chcesz użyć. Zarówno UTF-8 jak i ISO-8859-2 jest dobre z tą różnicą że:
- kodowanie UTF-8 jest częściej używanym standardem przez programistów, ale będziesz musiał napisać sobie specjalny skrypt, który pozamienia ci krzaczki na polskie litery i w poprawny sposób je wyświetli.
- kodowanie ISO-8859-2 jest rzadziej używanym standardem przez programistów, ale za to nie będą powstawały ci krzaczki. Dokładniej jak napiszesz konkretną polską literę taka ci się wyświetli.

Widzę, że dopiero zaczynasz zabawę z programowaniem, więc proponuję Ci ISO-8859-2. Jeśli natomiast chodzi o znaczek "copyright" to po wpisaniu takiego kodu & # 1 6 9 - tylko bez spacji (kod ASCII) wyświetli się on na stronie. happy.gif

A jak obsługiwać się PSPad-em (jeśli chodzi o kodowanie) kolega ayeo napisał wcześniej.
Sławo
A dlaczego jak się umieści w kodzie:

  1. <META http-equiv="Content-Type" content="text/html; charset=windows-1250" />


to strona wyświetla się poprawnie i wszystko jest OK??

A z
  1. <META http-equiv="Content-Type" content="text/html; charset=utf-8" />

są same problemy??
Kildyt
To, że coś dobrze wygląda, to nie oznacza od razu, że jest dobrym rozwiązaniem.

Jak napisał już ayeo nalezy zdefiniować kodowanie w pliku html i zakodować plik z takim samym kodowaniem co w html. Sprawdź także, czy twój serwer wspiera UTF-8.

Czy źle pamiętam, czy kodowanie windows-1250 nie działa na linuksie? Kiedyś coś takiego przeczytałem, ale nie jestem pewien.
piotrooo89
kurcze pewnie Ci już pisali ale powtórzę.

1. robisz nowy plik nie w notatniku windy tylko w jakimś programie który obsługuje zmiane kodowania (polecam Notepad++)
2. ustawiasz kodowanie pliku na utf-8
3. ustawiasz kodowanie jakie będzie rozpoznawanie przez przeglądarkę (meta tag czyli:
  1. <META http-equiv="Content-Type" content="text/html; charset=utf-8" />)


i teraz bardzo ważne jak zmieniasz kodowanie już istniejącego pliku to w tym pliku już będzie Ci się krzaczyć i pomimo że masz ustawione kodowanie w pliku i dla html'a musisz poprawić wszystkie znaki (możesz również skorzystać z programu gżegżółka).
Sławo
Ad 1. Wszystkie projekty piszę w Notepad++,
Ad 2. ustawione,
Ad 3. ustawione,

przy zapisaniu nowego pliku dzieje się to samo. Sprawdzałem na przeglądarkach Firefox 3.0.3 oraz IE 7.0.

aha jeszcze jedno nie mam zamiaru korzystać z dodatkowych programów "ma działać i już".
piotrooo89
a powiedz jeszcze co się dzieje krzaczy się? sprawdzałeś czy w pliku źródłowym są krzaki?
Sławo
Kod źródłowy pliku:
  1. Strona testowa
  2. <META http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. </HEAD>
  4. <div align="center">
  5. <H1>STRONA TESTOWA</H1>
  6. <HR></HR>
  7. <H1>ąęćźżśłńó</H1>
  8. </div>
  9. </HTML>
piotrooo89
a powiedz jakie masz kodoawanie jak klikniesz w fx widok -> zestaw znaków? musi być utf.
Sławo
Jest UTF ustawione.
piotrooo89
właśnie sobie to wklepałem do siebie i wszystko hula... straciłem pomysły...
bim2
Serwer wysyla nagłowek z iso pewnie. Daj header('Content-Type: text/html; charset=utf-8);
Sławo
Wstawiłem do kodu pliku nagłówkowego:
  1. <?php
  2. header("Content-Type: " . "text/html; charset=utf-8");
  3. ?>
oraz poniżej dodałem:
  1. <META http-equiv="Content-Type" content="text/html; charset=utf-8" />


i nadal nie wyświetla poprawnych znaków.

Dodatkowe informacje MySQL localhost:
System porównań dla połączenia MySQL: utf8_polish_ci
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
bim2
mysql_query('SET CHARSET utf8');
to nakazuje utrzymywac połączenie w utf-8
Sławo
A co z tym header (nagłówkiem)questionmark.gif?
Bo już się gubię a stronka nadal się krzaczy.
pinochet
Co to znaczy że strona się krzaczy? może link albo chociaż print screen?
Jeśli używasz Notepad++ to musisz wybrać Format->UTF-8(bez BOM)

jeszcze raz notepad++:
ctrl+a ctr+x alt+f kodowanie UTF-8(bez BOM) ctrl+v ctrl+s :]

jest jeszcze możliwość że w ustawieniach apache masz domyślny charset na ISO albo inny różny od UTF jednym słowem:
zmień domyślny charset w confiku apache
zmień domyślny charset w PHP lub wyslij nagłówek
zmień plik na kodowanie w UTF-8 bez BOM
zmień meta-tag na kodowanie w UTF-8

i nie mów że nie działa :] bo tak juz prawie cały internet działa
Sławo
Strona przed zastosowaniem porady: i po zastosowaniu porady:
widać różnicę
Po zastosowaniu się do porady nr 1 wszystko wyświetla prawidłowo. yahoo.gif

A co do tej drugiej porady to nie sprawdzałem ale pewnie wynik będzie taki sam.
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.