FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Nykomling
|
Hejsan.
Jag och en kompis håller på att utveckla ett litet projekt men vi har stött på ett litet problem. Sidan är UTF8. Databasen är UTF8 och XMLen (som genereras mha PHP från databasen) är UTF8. (xml används utav några ajaxfunktioner) Sidan kommer rikta sig till hela världen så vi vill ha stöd för inte bara svenska tecken utan alla möjliga tecken. Problemet är att i IE så när man gör en livesearch via AJAX så inehåller den retunerade xmlfilen ett å, ä eller ö så validerar inte den för XML och det går inte att använda resultatet. I firefox så fungerar det, men å, ä och ö blir utbytta mot ett frågetecken (detta verkar göras autimatiskt utav firefoxs xml-"parser"). Finns det något sätt att få ordning på detta? |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Klarade millennium-buggen
|
PHP har stöd för att översätta mellan olika charset, men hur bra det blir i praktiken vet jag inte. Ett annan väg att gå är att översätta till motsvarande url_encode (typ %xx) eller html_entities (typ ä
![]() Kan man inte speca vilket format man vill ha resultatet i på en live-sökning? |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Bara ett inlägg till!
|
Förstår inte vad probelmet är. Ni kör ju UTF8 rakt igenom. Ni måste råkat tabba er någon stanns helt enkelt. Gissningsvis i Javascript-koden.
För övrigt kommer PHP 6 ha fullt stöd för multibyte-tecken (dvs. stöd för UTF8). |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Mycket flitig postare
|
Pipen: Se till att använda vettiga rubriker!! Om du inte sätter beskrivande klara rubriker så kommer folk inte ens läsa dina inlägg! Skriv vad problemet är och vilka (skript-)språk du använder. Förslag t ex: AJAX-problem: åäö med utf-8 (med PHP)
Citat:
Jag har inte riktig lurar ut var felet ligger men jag misstänker att antingen så 1. är php inställt på iso och har php råkat upptäcka att strängen är utf och har "vänligheten" att omvandla från utf till iso eller så 2. är servern inställd på att skicka sina requester med Content-Type som iso och browsern "bollar tillbaks" ajax-requesten med samma encoding (iso) trots att den egentligen borde veta att det ska vara utf (enligt metataggen) Egentligen borde det lösa sig om man lägger till ett AddCharset UTF-8 .php i .htaccess och ser till att man sätter header("Content-Type: text/xml; charset=utf-8"); i php (och ser till att man har meta-taggar i html med content-type) Dessvärre hjälper inget av detta… (det ger istället allehanda märkliga resultat) Vad som är möjligt är att omvandla inkommande sträng till utf8 med Kod:
$fixad = utf8_encode($_GET['data']); ![]() Edit: IE6 krånglar om du sätter: Kod:
header("Content-Type: text/xml; charset=utf-8"); Kod:
header("Content-Type: text/xml"); |
|||
![]() |
![]() |
Svara |
|
|