åäö via ajax med php och javascript

Tråden skapades och har fått 8 svar. Det senaste inlägget skrevs .
1

Jag håller på med en AJAX lösning där jag via ett PHP script hämtar text från en MySQL databas. PHP fixar att det står åäö i databasen men när jag sedan skickar det via javascript blir det inte så bra... vad ska jag göra för att få med åäö hela vägen till webbläsaren?

Använda Unicode.

Det är det jag gör överallt men hur säger jag till Javascript att det är unicode som gäller?
Jag erkänner att det var längesedan jag höll på Javascript.

  • Medlem
  • Mölndal
  • 2007-06-23 21:08

Jag skrev lite på temat (till nån som inte lyssnade) i den här tråden. Inte riktigt samma, men en del gäller iaf.
http://www.99.se/utveckling/215344-aoeae-i-foer-mac-pc-i-alert-i-javascript.html

Undrar just vad som ställer till mitt problem.
När php skriver ut texten från databasen (utan angiven teckenkodning) så går det alldeles utmärkt.
Det är först när texten skickas via javascript som det går åt fanders.

Både php och javascriptet inkluderas i html dokumentet som är kodat som UTF-8.

Vad är det för fel?

Jag fick samma fel när jag lät en widget kommunicera med phpscript på datorn. Jag kom fram till följande två sätt att lösa problemet. Båda två funkar var för sig för mig men gissningsvis är kanske ettan att föredra för dig eftersom tvåan förstör responseXML.

1 kör utf8_encode() på allt du skriver ut med print och/eller echo samt utf8_decode() på alla variabler du skickar till scriptet. Min teori är att php arbetar med Latin1-kodning internt, åtminstone verkar php göra det på min dator.

2 kör urlencode() på allt du skriver ut med print och/eller echo. Kör sedan unescape() på responseText i javascript (se bara till att själv ersätta de tecknen som javascripts unescape hoppar över, såsom +). Samma sak åt andra hållet, kör escape() i javascripten först och urldecode() i php när du tagit emot något från javascriptet.

  • Medlem
  • Mölndal
  • 2007-06-24 17:35

Huh så knöligt! Ursäkta språket från en ASP.NET-kille, men är verkligen PHP så efterblivet?

Om du ska skriva ut saker till webbläsare med t.ex PHP så ska du använda htmlentities() på text som innehåller t.ex åäö eller &-tecken.
Ditt problem har inte direkt med javascript att göra utan beror på att webbläsaren inte kan hantera tecknen du försöker visa...

Jo det blev en htmlentities till slut. När jag väl lyckas stava kommandot rätt.

1
Bevaka tråden