Gå til innhold

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


Anbefalte innlegg

Videoannonse
Annonse

Jeg prøvde også å legge inn koden din (i tilfelle den kunne brukes direkte), men fikk en feilmelding:

Uncaught InvalidCharacterError: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.

 

 Merkelig, det funker helt fint for meg. (i Chromium)

 

Hva bruker dere forresten for å konvertere det rotet til klartekst?

atob(data), gjør den inverse operasjonen.

 

 

Men de riktige dataene mangler fremdeles i outputen din.

 

Prøv å print både den encodede verdien og den uencodede verdien samtidig slik at du ser hva som blir printent:

console.log(min_var, btoa(min_var));
For at det skal bli riktig må min_var (det som blir printent) inneholde noen spesialtegn som f.eks øæå.

 

Hvis du får problemer med characters out of range, prøv med denne,

btoa(unescape(encodeURIComponent(min_var))), men prøv uten først.

Lenke til kommentar

OK, det funker. Men det gir samme resultat. Og jeg tror problemet kan være at variabelen jeg bruker, bare er en henvisning til plassen i tabellen som den variabelen som egentlig går ut til nettsiden står på. Her er jo koden som lager kolonnen:

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

Det gir listen over rommene, med Kjøkken uten ø, men uansett hvordan jeg mekker på koden dere har gitt meg, får jeg ikke noe annet enn det tidligere.

Lenke til kommentar

Ok, så hvis det eneste du genererer med scriptet er det der, så må det være et annet script (javascript) en plass som går gjennom tabellen og fyller den med data. Hvis ikke så ville du bare fått en blank tabell uten innhold.

 

Så problemet må ligge i det andre scriptet, for den koden du har der skal ikke ha noen betydning for encodingen på dataene som skal vises.

Lenke til kommentar

Da tror jeg det må være dette skriptet som gjør det:

<%

function getfield (f)
    local v = _G    -- start with the table of globals
    for w in string.gfind(f, "[%w_]+") do
        if type(v) == 'table' then --v ~= nil
            v = v[w]
        else
            return false
        end
    end
    return v
end

local s,vartype
local t = webserver:GetCGI()    

if t.Data then
  local json = require('json.json')
  local data = string.Split(t.Data,",")
  webserver:print('{')
  for i in ipairs(data) do
    if (i~=1) then 
      webserver:print(',')
    end
    webserver:print('"' .. data[i] .. '":')
    s=getfield(data[i])
    if s then
        vartype = type(s)
    if ( vartype =='function' ) or ( vartype =='thread' ) or ( vartype == 'userdata' ) then
            webserver:print('"[' .. vartype .. ']"')
        else 
            if (s==nil) then
              webserver:print('null')
            else
              webserver:print(json.encode(s))
            end
        end
    else
        webserver:print('"[Variable Not found]"')
    end
  end
  webserver:print('}')
end
%>

For det er det eneste andre skriptet som er innblandet i saken.

Lenke til kommentar

Det der ser ut som et lua script som kjører på server siden. Hvis koden din genererer tabellen med javascript i nettleseren, så skal ikke det lua scriptet kunne gjøre noe med den etterpå. Fordi når javascripet kjører i nettleseren meds lua scriptet kjøres på serveren.

 

Men det kan se ut som at det lua-scriptet genererer json data. Så det er sikkert en javascript-kode en plass som kaller det scriptet over http (ajax) for å hente dataene og sette de inn i tabellen.

 

Hvis du bruker chrome kan du sjekke dette med å trykke ctrl+shift+i også trykker du på nettverks-tab'en. Hvis du reloader siden da skal du få opp alle requests som skjer i bakgrunnen når siden lastes. Hvis du går gjennom disse så vil du sikkert finne en request som går til det lua scriptet du pastet over.

Lenke til kommentar

Ja, det stemmer, det er LUA. Og ja, det er noe JSON-greier (som jeg knapt vet hva er for noe...). Og ja, jeg fant den riktige requesten, som ser sånn ut:

{myVal: "[Variable Not found]",…}
Temperaturstyring.Nettside.Rom: ["WC", "Garderoberom", "Midtsoverom", "Hj�rnesoverom", "Hovedsoverom", "Bad", "TV-stue", "Kj�kken",…]
myVal: "[Variable Not found]"

Den med myVal er nok en feil et sted i nettsiden, men den skaper ikke andre problemer. Kan jeg bruke dette til å finne ut noe?

 

Edit: Fant og fjernet den "myVal", den var en levning fra en funksjon som er endret. Så nå ser det sånn ut:

Temperaturstyring.Nettside.Rom: ["WC", "Garderoberom", "Midtsoverom", "Hj�rnesoverom", "Hovedsoverom", "Bad", "TV-stue", "Kj�kken",…]
0: "WC"
1: "Garderoberom"
2: "Midtsoverom"
3: "Hj�rnesoverom"
4: "Hovedsoverom"
5: "Bad"
6: "TV-stue"
7: "Kj�kken"
8: "Kino"
9: "Biljardrom"
10: "Kjellerkontor"
11: "Treningsrom"
12: "Gjesterom"

Men det snåle er at hvis jeg dobbeltklikker på requesten, får jeg fram dette i en ny nettside:

{"Temperaturstyring.Nettside.Rom":["WC","Garderoberom","Midtsoverom","Hjørnesoverom","Hovedsoverom","Bad","TV-stue","Kjøkken","Kino","Biljardrom","Kjellerkontor","Treningsrom","Gjesterom"]}

Og der er det jo riktig!

Endret av Pallantir
Lenke til kommentar

Ok så da er i hvertfall dataene som kommer fra lua scriptet ikke korrupt.

 

Hvis du laster siden der verdiene vises riktig og åpner developer tools slik som tidligere. Reloader siden og trykk på requesten og se under "Headers"-taben. Se under response headers og se etter "Content-Type: ...". Se om det står noe om charset=... der. Hvis det ikke står noe om charset så er det mest sansynlig UTF-8. Past gjerne Content-type linjen her så jeg kan se om den er riktig.

 

 

Hvis det er utf-8 så kan du prøve å åpne den originale siden hvor teksten ikk ikke vises korrekt og sjekk developer tools igjen og se om content-typen som serveren setter inneholder en streng som setter encodingen. F.eks "Content-Type:text/html; charset=UTF-8".

Endret av FraXinuS
Lenke til kommentar

Jeg er tilbake til den opprinnelige siden, så det er den jeg bruker. Men det står ikke noe om charset. Det står faktisk ikke noe om charset verken i oppkallet til den, i hovedoppkallet, i jquery eller i style.css. COntent type for nettsiden er

 

Content-Type:text/html

 

Og det forstår jeg egentlig ikke, for i selve nettsiden står det jo:

 

<meta charset="UTF-8"/>

 

Så burde det ikke vært noe i responsen der at tegnsettet er UTF-8?

Lenke til kommentar

Nei det trenger ikke stå noen noe om charset i responsen, når du setter meta taggen i htmlen så er det den som gjelder. Men hvis charset settes i respons headeren så vil det override meta taggen tror jeg.

 

 

Men hvis du går til den siden som genererte:

{"Temperaturstyring.Nettside.Rom":["WC","Garderoberom","Midtsoverom","Hjørnesoverom","Hovedsoverom","Bad","TV-stue","Kjøkken","Kino","Biljardrom","Kjellerkontor","Treningsrom","Gjesterom"]}
Hva er content typen som settes i respons-headeren på denne siden?
Lenke til kommentar

text/html, uten noe charset. Jeg har tidligere prøvd å legge til dette i LUA-skriptet som henter ut verdiene:

("Content-Type: application/json; charset=UTF-8", true);

Men da slutter det hele å virke, og ingenting blir hentet inn.

 

Edit: Jeg har også prøvd å sette content type i hovedsiden sånn:

<meta Content-Type="application/json"/>

Men det hjelper ikke, det står fortsatt text/html i response for den.

 

Edit, dette blir vel riktigere, men gir ikke noe annet resultat:

<meta http-equiv="content-type" content="application/json; charset=UTF-8"/>
Endret av Pallantir
Lenke til kommentar

Det fjerner den helt. Og jeg får ikke noe i tabellen. Det kommer fortsatt ut som svar, men det bygger ikke tabellen. Hvis jeg fjerner linjen igjen, dukker det opp i tabellen straks.

 

Sorry, jeg så feil. Ja, det endrer innholdet til application/json.

Endret av Pallantir
Lenke til kommentar

Ok, problemet ligger da sikkert i javascriptet som genererer den ajax requesten. Får du noen feilmeldinger i konsollen? (I developer tools).

 

En eller annen plass i koden din må det være en javascript-kode som sender requesten til lua-scriptet. Du må sjekke hva denne javascript-koden gjør med responsen det får fra lua scriptet.

  • Liker 1
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...