ugrás a tartalomhoz

Ciril karakterkódolás

Butcher · 2007. Ápr. 28. (Szo), 07.01
Üdv.

Mint a téma cime is mutatja ciril karakterkódolással küzdök.
Szerintem jól csináltam minden és weboldal egy lapjain - ahol nincs session - megy is minden szépen. Viszont ha az index.php-t elmentem utf-8 tipusu filenak akkor a szokásos:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at ...

hibaüzenetet kapom.
Plusz ha utf-8 a file tipusa akkor az elejére kerül ez a bejegyzés:

Ami jó ebbe, hogy ilyenkor megy a ciril betű megjelenités.
Ha az előbb emlitett karakterláncot kitörlöm már nem lesz session hiba, de a karakterkódolás sem fog menni...
Valaki irja már le mit rontok el vagy mi lenne ennek az igazi megoldása.

thx
 
1

ez a byte order marker

razielanarki · 2007. Ápr. 28. (Szo), 07.41
ha jól sejtem ez a BOM, ált a bytesorrendet (little/big endian) jelölik vele unicode (pl UTF-16) esetén, de utf-8 nál (ahol mindegy a bytesorrend) ott egyszerűen azt jelöli h ez nem ascii hanem unicode fájl.

a megoldás az output buffering lehet (ob_start/ob_end és társaik) használata, így elkerülheted h a headerek kiküldése előtt elküldje ezt a karaktersorozatot a kimenetre a script nyitó <? tagjének feldolgozása előtt.

(meg persze nem árthat egy header("Content-Type: text/html; Charset: UTF-8"); sem)
2

Töröld

Ajnasz · 2007. Ápr. 28. (Szo), 08.53
Keress egy text editort, amivel ki tudod törölni a BOM-ot.
4

vim

Butcher · 2007. Ápr. 28. (Szo), 19.40
A VIM-el ki tudom törlni, de onnantól kezdve nem is megy a karakterkódolás.
3

a file karakterkódolása

rrd · 2007. Ápr. 28. (Szo), 11.44
A file karakterkódolása lesz a probléma. Szóval azt kell tenni, hogy utf-8 maga a file karakterkódolása és kiküldöd a headert is, meg ha mysql-ből jön az adatot, akkor ott meg set names utf8. Ha ez mind megvan akkor mennie kell. Én csináltam ciril oldalt, ennyi elég volt hozzá. Az ilyen gubancokat az szokta okozni, hogy vagy eleve nem jó karakterkódolással ment a szerkesztő programod, vagy feltöltéskor átkonvertálódik.
5

BOM

Butcher · 2007. Ápr. 28. (Szo), 19.46
Most kitöröltem BOM bnejegyzést adtam neki headert stb.:
<?
include 'connect.php';
session_start();
include "admin/var.php";
include "smilies.php";
print "<title>$sitetitle</title>";
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

Mi kéne még?
Jah és nem sql-ből jön az adat (egyenlőre).
6

HTTP > META

attlad · 2007. Ápr. 29. (V), 14.15
Ha a HTTP fejlécben más kódolás van megadva az felülbírálja a META elemmel megadottat, tehát ha érkezik ilyen HTTP fejléc, akkor azt felül kell definiálnod, lásd #1 utolsó mondata.
7

Hova?

Butcher · 2007. Ápr. 29. (V), 18.52
Oksa. Ebbe a kódrészletbe pontosan hova kéne rakini:
<?
include 'connect.php';
session_start();
include "admin/var.php";
include "smilies.php";
print "<title>$sitetitle</title>";
?>
8

Kimenet elé

attlad · 2007. Ápr. 29. (V), 20.00
Mindenféle kiírás elé, pl. az első include elé (mivel nem derül ki abban mi van).
9

Oda

Butcher · 2007. Ápr. 30. (H), 06.45
Igen, oda raktam, de a kódolás ugyanúgy nem volt jó.
10

Nem UTF-8

attlad · 2007. Ápr. 30. (H), 10.54
Ha Firefox-ban: View / Character Encoding / UTF-8 van jelölve, de mégis gond van a megjelenéssel, akkor valószínűleg nem UTF-8-ban kapta a tartalmat a böngésző/nem abban van a fájl. (Vagy nem megfelelő a betűkészlet.) Ha továbbra se jó linkeld a lapot vagy valami tesztoldalt.
11

innen mintha hiányozna valami

rrd · 2007. Ápr. 30. (H), 11.48
a beküldött kódodból hiányzik az eleje:

<?xml version="1.0" encoding="utf-8"?>
<!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" lang="ru" xml:lang="ru">
<head>
...
Ez ott van?

De tényleg felrakhatnál valahová egy tesztoldalt, hogy meg tudjuk nézni.
12

Parse error: syntax error, unexpected T_STRING

Butcher · 2007. Ápr. 30. (H), 14.50
Az első sor kivételével minden megvan, ha beirom a:
<?xml version="1.0" encoding="utf-8"?>
sor akkor a Parse error: syntax error, unexpected T_STRING hibaüzenetet kapom. Nyilán, mert php-ként értelmezi.
Ilyenkor mi a teendő?
13

Literal

kris7topher · 2007. Ápr. 30. (H), 16.56
<?="<?"?>xml version="1.0" encoding="utf-8"?>
Ez a tuti!
14

Xsl

Butcher · 2007. Ápr. 30. (H), 17.48
Ekkor ezt kaptam:
The XML page cannot be displayed
Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.
15

inkább így

rrd · 2007. Május. 4. (P), 12.52

<?php
   header('Content-Encoding: utf-8'); 
   header('Content-Type: text/html; charset= utf-8'); 
   print '<?xml version="1.0" encoding="utf-8"?>';
?>