Gå til innhold

Problemer med str_replace og æ, ø og å [LØST]


Anbefalte innlegg

Takk, nå er vi veldig nær!

Nå skrives æ, ø og å som &aring, &oslash osv. Det siste du nevnte var å fjerne htmlentities, visste om du mente at jeg skulle gjøre det i scriptet også, men når jeg gjorde det, greide ikke scriptet hente ut meldingene. Jeg prøvde å ta vekk bare htmlentities, men da kom det ?? istedet for tegnene.

 

Jeg snakker nå om stedet rett under der du ba meg skrive inn det med utf-8 decode.

Lenke til kommentar
Videoannonse
Annonse

Hm. Det var litt rart. Kommer teksten opp som å o.l. når du ser den i nettleseren, eller er det i koden på siden du ser dette? Se hva som står i koden der æ, ø eller å burde ha stått. Står det å o.l., burde det være greit. Lurte på om det kanskje står å eller noe sånt i koden, og i så fall er det en htmlentities for mye.

 

Når det kommer opp ?, kan det bety at funksjonen utf8_decode har blitt kalt en gang for mye, altså at tekst med æ, ø og å i blir forsøkt dekodet fra utf8 til iso-8895-1. Problemet da er at dette er tegn som ikke finnes i utf8, og dermed kommer det opp ? i stedet, for hvert tegn den ikke skjønner.

 

Tror det også kan bli krøll hvis siden er i utf8 (header-funksjonen i php, f.eks.), og teksten er i iso-8895-1, men det skulle gå fint hvis teksten er skrevet med html-entiteter.. Ville sjekket koden på siden (høyreklikk hvor som helst på siden og klikk 'Vis kilde' eller 'View Page Source' i Firefox), og finn ut hvordan æ ø og å ser ut der. Kom tilbake med svar, og så får vi se. :)

Lenke til kommentar

Jepp, det står &amp&aring i kildekoden. Det er jo for så vidt sant at jeg fremdeles har en htmlentities i scriptet, men når jeg prøvde å ta det vekk, ble ikke meldingene vist i det hele tatt.

Dette tok jeg vekk:

$vismelding=nl2br(htmlentities($hentmelding));

Dette er i samme avsnittet hvor du ba meg sette inn det med utf-8 encode, helt nederst.

Har også prøvd å ta bare vekk selve htmlentities, men da kom det bare ?? opp.

Lenke til kommentar

Hm. Da vet jeg faktisk ikke.. Hvor kjører du dette skriptet? Lokalt på pcen? Fra webserver? Jeg ville uansett forsøkt med XAMPP, som er en søt liten pakke, med Apache, PHP, MySQL, etc. inkludert i samme pakken. Tenkte kanskje du kjører det et sted uten støtte for iso-8895-1 eller noe i den dur, og at det kanskje kunne hjulpet med en egen liten webserver. Jeg ville prøvd meg litt på header-funksjonen, og sett om den hadde noe å si. Eventuelt lekt litt med et helt nytt skript, med lignende egenskaper, for å se om det skjer noe med de norske bokstavene.

 

For å være helt ærlig, har jeg ikke så mange flere idéer... Hvis det kommer opp å i stedet for å etter du har kjørt htmlentities, og ? hvis du kutter ut sistnevnte, har jeg ikke så mange lure idéer. Det eneste jeg kan tenke meg er at siden leses som utf-8, og kanskje ikke klarer å skjønne de norske tegnene. Hvis ikke, har jeg ikke så mye å komme med, dessverre..

 

EDIT: Hva står det i koden der å burde ha vært? Tenkte kanskje det står å i koden, men ? på selve siden, altså at tegnet ikke kan vises som det skal. Eller noe i den dur.

Endret av loketing
Lenke til kommentar

Jepp, bruker xamp, men dette ligger på webserveren min.

Når jeg tar vekk htmlentities i scriptet, og ?? vises, står det også ?? i kildekoden.

 

Det jeg ikke fåt til å stemme er at i navnet på den som har signert, fungerer æ, ø og å fint, så det er muligens noe i koden rundt $vismelding at feilen ligger.

 

 

EDIT: Fant en måte å få vekk htmlentities. Nå kommer det ������ i stedet for bokstaven. Samme i kildekoden.

Endret av Kimmeham
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...