ugrás a tartalomhoz

UTF-8

sosdaniel · 2012. Szep. 12. (Sze), 20.03
A .php végződésű fájlom UTF-8 kódolású és nincs Unicode BOM. A fájl HTML része tartalmazza a <meta charset="UTF-8" /> kódsort valamint a MySQL adatbázishoz kapcsolódás után meg van a mysql_query ( "SET NAMES UTF-8" ), akkor kell még valami a fájlba? A tisztánlátás végett szeretném körbe járni ezt az UTF-8 témát. Mivel <!DOCTYPE html> vagyis HTML5, szükség van a <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> és/vagy az ini_set('default_charset','utf-8') kódsorokra? Azt szeretném elérni, hogy egyik böngészőbe se legyen karakterkódolási hiba – IE6 is számít.

Előre is köszönöm a segítséget!
 
1

HTTP fejléc

Poetro · 2012. Szep. 12. (Sze), 20.11
Már csak a fájlt kellene a megfelelő fejléccel kiküldeni. Ebben az esetben például:
header('Content-Type: text/html; charset=utf-8');
2

HTTP fejléc

sosdaniel · 2012. Szep. 12. (Sze), 20.17
Ha a header ( 'Content-Type: text/html; charset=utf-8' ); meg van, akkor a <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> és az ini_set ( 'default_charset', 'utf-8' ) nem kell?
3

De kell

Poetro · 2012. Szep. 12. (Sze), 20.21
Miért ne kellene? Ideális esetben a böngésző a HTTP fejlécekből olvassa ki a karakterkódolást. Ha abban nem szerepel, akkor fordul a meta elemhez. De természetesen nem minden böngésző egyforma, és van ami nem nézi a HTTP fejléceket.
4

De kell

sosdaniel · 2012. Szep. 12. (Sze), 21.16
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!-- XHTML -->
<meta charset="UTF-8" /> <!-- HTML5 -->

Akkor egy HTML5 dokumentumba kell a fenti két sor? Csak az egyik nem elég?
5

Kell a http header, amit

inf · 2012. Szep. 13. (Cs), 10.44
Kell a http header, amit többen is írtak, illetve az összes űrlapnál és ajax kérésnél be kell állítani szintén a content-type -nál, hogy utf-8 legyen.

A string függvények némelyike nem megy utf-8-al. Multibyte függvényeket érdemes használni, a preg függvényeket meg u flaggel.
6

Kell a http header, amit

tgr · 2012. Szep. 14. (P), 01.47
Kell a http header, amit többen is írtak, illetve az összes űrlapnál és ajax kérésnél be kell állítani szintén a content-type -nál, hogy utf-8 legyen.


Miért is kell? A meta taget mindegyik böngésző érti.
7

Jobb a biztos alapon. Én

inf · 2012. Szep. 14. (P), 03.32
Jobb a biztos alapon. Én mondjuk meta taget nem mindig küldök ki, inkább csak header-eket... Mondjuk htaccess-ben is be lehet állítani, hogy utf-8 legyen a kódolás, és akkor nem kell se header, se meta tag.
8

Jobb a biztos alapon. Én

sosdaniel · 2012. Szep. 14. (P), 14.52
A .htaccess fájlba mit kell írni? Ez a megoldás nagyon tetszene.
10

A google

hunkris · 2012. Szep. 14. (P), 15.27
A google szerint:

AddDefaultCharset UTF-8
vagy
AddCharset UTF-8 .html

Az első értelemszerűen az alap kódolást állítja be, míg a második a HTML kiterjesztéshez rendeli hozzá az UTF-8 kódolást.
11

Első

Pepita · 2012. Szep. 15. (Szo), 03.04
Elég az előbbi, neki is .php van. Ha meg akarod úszni az ini_set, stb-t, akkor ezt is lehet .htaccess-ben: php_value default_charset "utf-8". Ezzel a megoldással más, php.ini-be "való" beállítást is meg lehet adni, ha pl. a PHP nem értelmezi a helyi .ini-ket.
9

Alapértelmezés

Hidvégi Gábor · 2012. Szep. 14. (P), 15.14
Ha a php vagy a webszerver beállításaiban ISO-8859-2 van alapértelmezett fejlécnek beállítva, akkor az be fog kavarni.