Visa ett inlägg
Oläst 2006-04-05, 12:33 #2
zorans avatar
zoran zoran är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 598
zoran zoran är inte uppkopplad
Mycket flitig postare
zorans avatar
 
Reg.datum: Jun 2004
Inlägg: 598
Citat:
Originally posted by backen@Apr 5 2006, 11:52
Jag har problem att få UTF-8 att fungera på en sida jag har på en egen windows server.

Med filerna sparade i "standard ascii" och charset iso-8859-1 fungera allt för mig lokalt men vissa browsers får problem med svenska tecken.

Med filerna sparade i "standard ascii" och charset utf-8 blir åäö fel

Med filerna sparade i "utf-8" och charset utf-8 får jag följande felmeddelande
Kod:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at F:\work\hemsidor\fractalposter3\httpdocs\index.php:1) in F:\work\hemsidor\fractalposter3\httpdocs\top_mall.php on line 1

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at F:\work\hemsidor\fractalposter3\httpdocs\index.php:1) in F:\work\hemsidor\fractalposter3\httpdocs\top_mall.php on line 1
Mysql är inställt på teckenuppsättning "UTF-8 Unicode(utf8)" och Kollation "utf8_unicode_ci".
Apache har "AddCharset UTF-8 .utf8" med i httpd.conf

Hur kan det här med teckenuppsättning påverka session_start() mm?

Vad är det jag missat eller förstått fel? Finns det någon bra sida på nätet med information ang detta med teckenuppsättningar?
Det som jag kan tänka mig orsakar felmeddelandet är förmodligen BOM tecknet i PHP-filen som är utf-8 encodad.

När servern skickat iväg BOM-tecknet, tror den att den börjat servera innehållet av sidan. När du sen anropar header-funktionen, klagar den.

Du kan inte använda ascii-kodningen på filen om du har svenska tecken i den.

Om all innehåll kommer från databasen, då spelar det ingen roll vilken enkodning din fil har. Den ska bara ändå läsas av servern.

Däremot är det viktigt, att om du hämtar utf-8 data från db, att du skickar utf-8 data till klienten (om du inte vill konvertera den först). För det använder du antigen header("Content-type: text/html; charset=utf-8"); och <meta> taggar, eller så konfigurerar du servern att alltid skicka charset utf-8.

Så.. du kan även spara filer i utf-8 utan BOM. Kolla på din editor hur du gör det.
zoran är inte uppkopplad   Svara med citatSvara med citat