Gå til innhold

Kan noen hjelpe meg med å konvertere � til ø på en nettside?


Anbefalte innlegg

Jeg har en nettside jeg har programmert selv med en god del hjelp av en kjenning i England, som kjører javascript med variabler hentet fra et annet program. Problemet er at de ser helt greie ut i det programmet, men når de kommer over i nettsiden, blir det feil. Koden som viser den kolonnen med variabler er sånn:

var navn_REF = '<center><Div><Span id=\"navnID'+RowID+'\"></span></center>';
$('<td>'+navn_REF+'</td>').appendTo(tr);

Jeg vet ikke om det går an å forstå noe ut fra det uten å ha resten av sammenhengen, men navnID og RowID kommer fra det andre programmet. Men der det skal stå ø, blir det � istedenfor. Går det an å bruke String replace eller noe lignende for å få dette til å fungere? Jeg tror jeg har vært gjennom absolutt alle mulige forsøk med å endre tegnsett (jeg bruker UTF-8, som støtter ø), både i programmet som sender koden og i nettsiden, og jeg finner bare ikke ut hvor problemet ligger. Men er det mulig å kjøre en konvertering av det symbolet til en ø i selve nettsiden?

Lenke til kommentar
Videoannonse
Annonse

Spørsmålstegnet sier at det du prøver å vise er en ugyldig UTF-8 sekvens, noe som er ganske naturlig for Æ, Ø og Å.

 

Hvis det mest signifikante bitet er 1 så indikerer det at mer enn étt byte kreves for å dekode symbolet.

 

Eksempelvis enkodes 'Ø' som {0xC3 0x98} (11000011 10011000‬) i UTF-8 men ANSI ISO-8859-1 enkoder Ø som {0xd9} (11011001) noe som fører til at den forventer et byte til, men det påfølgende bytet er ikke riktig enkodet. Dermed vises � for å indikere at symbolet ikke ble dekodet.

 

Enten få kilden i UTF-8 eller finn ut av enkodingen som ble brukt og gjør en konvertering. Eventuelt bytt fra UTF-8 i visning til hva nå enn kilden presenterer.

Lenke til kommentar

FraXinuS, det har jeg. Det sto riktignok uten slash til slutt, men det endret ikke noe (jeg håpte vilt et øyeblikk der...).

 

GeirGrusom, kan jeg finne ut av kodingen på noen enkel måte? Er det noe program jeg kan "sette i mellom" for å "avlytte" hva slags format dataene har når de går inn til nettsiden? Eller er det verdt å prøve med en dullion forskjellige charsets, og hvilke bør jeg da prøve? Jeg prøvde nettopp nå å endre UTF-8 i meta til ANSI ISO-8859-1 (og lagre html fila om igjen som ANSI, men det ga det samme resultatet. Programmet som sender ut dataene, er engelsk, men det takler uten problemer æø og å i variabler internt. Det er bare når det går ut til webserveren at det blir rot.

Endret av Pallantir
Lenke til kommentar

FraXinuS, det kjører en webserver på det proprietære programmet, og den tar verdiene fra variabler som er i en tabell der. Fins det kanskje en form for plug-in eller noe sånt til en nettleser som kan vise hvilke bits som kommer og ikke lar seg lese?

 

Mr D, jeg gjorde et forsøk på det og håpte vilt, men dessverre hjalp det ikke. :(

Lenke til kommentar

Hvis du kan bruke følgende kode til å encode de rå bytsene i javascriptet for en verdi som inneholder øæå så kan jeg prøve å se om jeg kan finne ut noe om hva slags encoding det kan være.

 

console.log(btoa(variabel_med_data_med_øæå));
Resultatet blir printet i konsollen, i Chrome åpner du konsollen med ctrl+shift+j.

 

Bare paste resultatet fra dette inn her så kan jeg prøve å se om jeg kan finne ut noe.

Lenke til kommentar

OK, det var snålt! Jeg fikk disse linjene:

dW5kZWZpbmVk
(index):84 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDAiPjwvc3Bhbj48L2NlbnRlcj4=
(index):84 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDEiPjwvc3Bhbj48L2NlbnRlcj4=
(index):84 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDIiPjwvc3Bhbj48L2NlbnRlcj4=
(index):84 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDMiPjwvc3Bhbj48L2NlbnRlcj4=
(index):84 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDQiPjwvc3Bhbj48L2NlbnRlcj4=
(index):84 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDUiPjwvc3Bhbj48L2NlbnRlcj4=
(index):84 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDYiPjwvc3Bhbj48L2NlbnRlcj4=
(index):84 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDciPjwvc3Bhbj48L2NlbnRlcj4=
(index):84 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDgiPjwvc3Bhbj48L2NlbnRlcj4=
(index):84 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDkiPjwvc3Bhbj48L2NlbnRlcj4=
(index):84 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDEwIj48L3NwYW4+PC9jZW50ZXI+
(index):84 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDExIj48L3NwYW4+PC9jZW50ZXI+

Bortsett fra første linje ser de ganske like ut. Men i nettsiden er tabellen på 13 punkter, som alle består av ett ord. Men kanskje dere forstår det? De tingene jeg har problemer med, er det 4. linjen (Hjørnesoverom) og den 8., som er Kjøkken.

Lenke til kommentar

Det ser ut til at det mangler noe data her. Linjene som blir printet i konsollen der inneholder:

<center><Div><Span id="mynameID0"></span></center>

<center><Div><Span id="mynameID1"></span></center>

<center><Div><Span id="mynameID2"></span></center>

osv.

 

Men inholdet som f.eks "Kjøkken" mangler. Det er det some er viktig. Så hvis du har en variabel som inneholder tekst med øæå så er det den som må printes f.eks:

 

var min_var = 'dette er et kjøkken'; // Strengen her blir sikkert hentet fra det eksterne programmet host deg.
console.log(btoa(min_var));
Lenke til kommentar

Kanskje det var fordi jeg hadde satt konsollkommandoen før den kommandoen som bygger opp variabelen ut fra to andre variabler? Er dette bedre? Den mangler den øverste, korte linjen, men består nå av riktig antall lange linjer.

PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDAiPjwvc3Bhbj48L2NlbnRlcj4=
test.lhtml:42 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDEiPjwvc3Bhbj48L2NlbnRlcj4=
test.lhtml:42 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDIiPjwvc3Bhbj48L2NlbnRlcj4=
test.lhtml:42 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDMiPjwvc3Bhbj48L2NlbnRlcj4=
test.lhtml:42 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDQiPjwvc3Bhbj48L2NlbnRlcj4=
test.lhtml:42 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDUiPjwvc3Bhbj48L2NlbnRlcj4=
test.lhtml:42 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDYiPjwvc3Bhbj48L2NlbnRlcj4=
test.lhtml:42 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDciPjwvc3Bhbj48L2NlbnRlcj4=
test.lhtml:42 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDgiPjwvc3Bhbj48L2NlbnRlcj4=
test.lhtml:42 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDkiPjwvc3Bhbj48L2NlbnRlcj4=
test.lhtml:42 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDEwIj48L3NwYW4+PC9jZW50ZXI+
test.lhtml:42 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDExIj48L3NwYW4+PC9jZW50ZXI+
test.lhtml:42 PGNlbnRlcj48RGl2PjxTcGFuIGlkPSJteW5hbWVJRDEyIj48L3NwYW4+PC9jZW50ZXI+

Nei, glem det. Det ser ut til at det står akkurat det samme der. Jeg må eksperimentere litt til.

Endret av Pallantir
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å
×
×
  • Opprett ny...