ugrás a tartalomhoz

enconding-charset

Vrt · 2008. Jan. 23. (Sze), 18.24
Sziasztok!

Kicsit elvesztem a témában remélem tudtok segíteni. Készítek egy oldalt ami eddig úgy tűnt, hogy úgy is fest a böngészőkben ahogy kell. De az egyik page tartalmaz php-t is ami megkövetelte h. php kiterjesztésű is legyen, így a kész html-t átneveztem..bár közben szerintem nem ezzel van a gond..összezavarodtam. Na a lényeg h az egyik @ jel helyet egy kalapos S betű jelent meg ezen az oldalon, de csak a php kiterjesztésű oldalon. (html kiterjesztéssel, ugyanez jól jelenik meg, csak hát a php miatt nem jó..)

És akkor itt indult a lavina.
Ez az eredeti html kódkezdet amivel csak a @ jel nem stimmelt. (persze kitörölhetném a @ jelet:))) )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>cim</title>

<link rel="stylesheet" type="text/css" href="style2.css" media="screen" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
<?php 
require_once('style.php'); ?>
Megpróbáltam a DW -vel átállítottam az encodingot UTF-8 -ra.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>cim</title>

<link rel="stylesheet" type="text/css" href="style2.css" media="screen">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php 
require_once('style.php'); ?>
Na most ez teljessen elnyomta az egészet. Kérdőjel és egyéb karakter hegyek. Megnéztem FF -ben, IE-ben. ua. A nézet kódolás a böngészőkben html kiterjesztés esetén az aminek a fájlban deklarálva van.
De a php fájlban ugyanez megnézve a kódolás lapon: nyugati(iso-8859-1). Ha átállítom a kódolást UTF-8-ra akkor a szöveges rész jól jelenik meg, de azok az adatok amiket a php az sql-ből szed az ékezetes karakterek átcserélődnek.

Segítsetek hogy tudom jól belőni, hogy mindenhol az jelenjen meg aminek kell.

Gondolom az UTF-8 -as kódolást az összes meghívott php fájlban be kell állítani. (itt elég ha DW -vel állítom és majd hozzáadja amit kell, vagy adjam meg minden php fájl első sorába Header("Content-type: text/html; charset=UTF-8"); -t?

Rosszul gondolom, hogy ha a szerveren valamilyen kódolás be van állítva akkor az érvényesül mindaddig amíg a fennt leírt módon a html headerbe nem állítjuk be a kívánt kódolást?!

Próbáltam saját webserveren, meg feltöltöttem uw -ra is.

Ellnézést hogy hosszúra sikerült. Próbáltam összeszedett lenni.

Remélem tudtok segíteni..

Üdv.

Kriszitán
 
1

Webszerver

janoszen · 2008. Jan. 23. (Sze), 19.16
Üdv,

a webszerver (apache) alapból Latin1-ként küldi a fájlokat. ERgó, ha másként szeretnéd küldeni és történetesen PHP-t használsz, akkor a leges legelejére ennek a beillesztése segíthet:

<?php header("Content-type: text/html; charset=utf-8");?>


Ha esetleg hibaüzenetet kapsz, googlizz rá a hibaüzenet szövegére, a BOM karakterek lesznek a hibásak.
3

félig

Vrt · 2008. Jan. 23. (Sze), 22.47
Megoldva. Köszönöm a segítséget. Mindkettőtöknek.
2

Fura

vbence · 2008. Jan. 23. (Sze), 19.52
A @ karakter mindenminden kódrendszerben ugyanaz, mivel része az ascii táblábla első felének (7 bites). Nézd meg hexa editorban, hogy mi van az eredti php fájlodban a kukac helyén. Hexa 40 kell, hogy legyen. Aztán nézd meg, (telnettel) milyen fejléceket kapsz egy html fájl lekérdezésekor, és mit a php kérésekor.