Jag hämtar en PHP-fil m.h.a. AJAX vilket funkar finfint bortsett ifrån att alla å,ä och ö blir konstiga symboler... inkluderar jag samma fil m.h.a. "include 'fil.php'" så ser det ut som det ska...
Om du använder UTF-8 överallt bör det fungera fint. Kör du ISO-8859-1 på någon av sidorna?
Det är egentligen bara en sida/ramverk (index.php) som sedan inkluderar innehållet (sida1.php, sida2.php... etc). Så här ser det ut i huvudet på index.php:
Glöm inte att headern i din XML måste vara av rätt typ också, t ex <?xml version="1.0" encoding="iso-8859-1"?>.
Eller du kanske hämtar färdigformaterad HTML?
Hmm, om jag förstår din fråga rätt så är svaret Ja, de PHP-filer som hämtas med ajax innehåller "färdig" HTML. Men det finns ju inget som berättar vad filen innehåller, eftersom den inte har något huvud...
XmlHttpRequest (Ajax) skickar data från webbläsaren som UTF-8, punkt. Det går tyvärr inte att kringgå.
På serversidan (i PHP-koden) måste du kunna ta emot UTF-8.
Om du kör Latin-1 kan du använda utf8_decode på alla POST/GET-variabler.
En mer avancerad lösning är Iconv som konverterar mellan andra teckenkodningar.
Däremot kan XmlHttpRequest ta emot data från webbservern som annat än UTF-8.
Så din PHP-sida kan spotta ut Latin-1 som svar, men måste kunna hantera inkommande data som UTF-8.
Om du hämtar färdig HTML-kod kan du använda en HTTP-header för att ange kodning: