ÉKEZETEK miért nem működnek rendesen sok böngésző esetén?
Sziasztok!
Segítséget szeretnék kérni az oldalamhoz.
Bevezető:
Megcsináltam az első oldalam. Az elkészítéséhez sok fórumot végignéztem, könyveket olvastam. Mégis jelentkezett az a probléma, hogy sok böngésző az ékezeteket nem kezeli rendesen.
Előkészületeim alapján egy egyszerű honlaphoz három dologra kell oda figyelni:
I.
valami.php fájlt utf-8 kódolással írjam,
II. legyen a html kódban,
III.header() fgv-nél is ugyan így járok el. Erről tudom, hogy még akkor kell meghívni mielőtt bármi is történne a honlapunkkal.
A következő a kód, amit használok az oldalhoz
index.phpBiztosan látjátok, hogy kezdő honlap készítő vagyok, de szorgalmammal nincs baj.
Kérlek segítsetek tanácsokkal ellátni!
■ Segítséget szeretnék kérni az oldalamhoz.
Bevezető:
Megcsináltam az első oldalam. Az elkészítéséhez sok fórumot végignéztem, könyveket olvastam. Mégis jelentkezett az a probléma, hogy sok böngésző az ékezeteket nem kezeli rendesen.
Előkészületeim alapján egy egyszerű honlaphoz három dologra kell oda figyelni:
I.
valami.php fájlt utf-8 kódolással írjam,
II.
<meta charset="UTF-8">
III.
header('Content-type: text/html; charset=utf-8');
A következő a kód, amit használok az oldalhoz
index.php
<?php
header('Content-type: text/html; charset=utf-8');
require 'Side.class.php';
$index = new Side();
$index->show( );
?>
<?php
class Side {
public $title = "Oldal";
public $keyword = "ékezetes betűk";
public function showMeta(){
echo "
<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" >
<meta name=\"keywords\" content=\"" .$this->keyword. "\" >
<meta name=\"language\" content=\"HU\" >";
}
public function showBody(){
echo "
<header >
<p>Ide a honlapon megjelenítendő szöveg...</p>
<p>í é á ű ő ú ó ü ö stb.</p>
</header>";
}
public function show(){
echo "<!DOCTYPE html><html><head>";
$this->showMeta();
echo "<head><body>";
$this->showBody();
echo "</body></html>";
}
}
?>
Kérlek segítsetek tanácsokkal ellátni!
</head>
php.ini
Gyanus, hogy nem utf8-al ir a php-d a kimenetre.
Keress a php.ini-ben direktivat.
Vagy irass ki egy php_info-t.
Core PHP
PHP Version 5.4.35-0+deb7u2
Apache/2.2.22 (Debian)
iconv
iconv.input_encoding ISO-8859-1 ISO-8859-1
iconv.internal_encoding ISO-8859-1 ISO-8859-1
iconv.output_encoding ISO-8859-1 ISO-8859-1
Ezeket találtam phpinfo();-ban.
Sajnos nem 5.6 PHP verzió.
Ezeket kell átállítani utf-8ra, úgy hogy kiveszem a pontosvesszőt?
Eddigi olvasataim alapjána header()-fgv ad utasítást a böngészőnek?
Köszönöm az eddigi hozzászólásokat!
iconv?
Keress a php doksiban default_charset-et v vmi hasonlo. Igy telorol most nem talalom.
A php verzio nem szamit karakterkodolasban.
Szerk.:
php.ini-ben van ilyen sor?
default_charset = "utf-8"
Elvileg ez ugyanaz, mint ha header fv-el küldöd ki, de próbáld meg.
A php fájl milyen
utf-8 BOM nélküli kódolás
webszerver
?>
Lassan már minden tipp elhangzott, ami ilyenkor felmerülhet, én még mondjuk annyival egészíteném, hogy a PHP fájlok végéről leszedhetnéd a ?> lezárást. Mert ha valahol olyan fájlt húzol be, ahol a lezárás után van még néhány üres sor, akkor az is bekavarhat. Igaz, jelen esetben nem kellene ennek sem zavarnia, de jobb ezt általános szabályként betartani.
Azt hiszem működik
5 gépen az összes böngészőben megnéztem és mindegyiken működött jól! :)
Ez nagy megkönnyebbülés számomra,mert nagyon elvette a kedvem és lendületem.
Mi okozta a bajt?
Mindent úgy csináltam, ahogy
Szerencsére a php.ini fájlban nem kellett változtassak.
Erre a meta tag-re gyanakszom:
A gyanakvás kevés. Egy
Egyet értek Gáborral! A
A gyanakvás kevés!
Egy hiba kapcsán nem elég megelégedni azzal, hogy már megoldódott!
Pontosan tudni kell az okát, mert így lehet belőle tanulni és nem elkövetni minden alkalommal!
Egyébként kevés esélyt adok annak, hogy a
meta
tag okozta a problémát, mert a kérdésben azt írod, hogy kiküldted ezt a header-t:header('Content-type: text/html; charset=utf-8');
Ez esetben viszont a kiküldött header szerint fog eljárni a böngésző.Egyébként ha van adatbázis kapcsolat, akkor az abban tárolt adatok és a kapcsolat karakterkódolására is oda kell figyelni. Bár azt nem említetted, hogy lenne...
sztem szimplán cache..
:)
Nem is gondoltuk - eddig.