webForumDet fria alternativet

Ajax + åäö + utf-8 =

PHP

4 svar · 694 visningar · startad av ume090

Medlem sedan aug. 200519 inlägg
Frågan#1

Jag har problem med att fixa så man kan leta efter "tåg".

När jag skrev t så kunde jag se

T-sprit
tåg
tack
Tak
Takplåt

så jag skrev tå så hittade databas inte "tåg"

Då jag testade med

$med = array ( "Å", "Ä", "Ö", "å", "ä", "ö" );
$byt = array ( "Å", "Ä", "Ö", "å", "ä", "ö" );
$str = str_replace($byt,$med,$str);

Det funkar! Men det är jobbigt eftersom jag behöver ha t.ex â ô bla bla. Så ska jag sätta in massor i array eller ha ni bättre lösning?

Medlem sedan juni 20008 205 inlägg
#2

Det är inte en jättebra idé att göra så, som du förstår :)
Finns två varianter. Det ena är att koda datan du skickar in i ajaxanropet med latin1 istället för unicode (escape istället för encodeURIComponent, vilket egentligen är dåligt att göra eftersom det ganska kraftigt reducerar vad för slags text du kan skicka in, men det funkar). Den andra är att låta PHP avkoda korrekt (default_charset = "UTF-8" i php.ini, t.ex.).

Medlem sedan aug. 200519 inlägg
#3

Det ena är att koda datan du skickar in i ajaxanropet med latin1 istället..... Det låter bra, men ett problem är att multi språk på en sida är inte lätt att ha latin1.

Det måste finns nåt bättre lösning!

Ni kan se
http://www.google.com/webhp?complete=1&hl=en

Dom kör UTF-8, visst är google en geni?

Jag testade â etc i google och därmed gick finemang!

Medlem sedan juni 20008 205 inlägg
#4

ume090 skrev:

Det ena är att koda datan du skickar in i ajaxanropet med latin1 istället..... Det låter bra, men ett problem är att multi språk på en sida är inte lätt att ha latin1.

Det måste finns nåt bättre lösning!

Läs andra halvan av mitt inlägg då ;)
Ditt faktiska problem är att PHP avkodar indatan fel. Säg åt PHP att använda UTF-8. Tror att det borde lösa sig om du sätter default_charset i php.ini till UTF-8, men jag har dålig koll måste jag erkänna. Någon annan kanske kan bidra?

Medlem sedan nov. 20041 740 inlägg
#5

Du har ju även utf8_encode och utf8_decode som du kan använda i PHP.

254 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)