Tjena
Håller på med en webbplats som ska finnas på 4 språk.
Det är svenska, engelska, hollänska och japanska.
Pågrund av detta använder jag UTF-8 charset på sidan. Det funkar jättebra tills jag kommer till javascriptbiten, å, ä, ö vill inte bli "rätt" översatta i när man valt svenska.
Har testat med escape / unescape / decodeURI() mm. men inget funkar.
Hur ska jag lösa det här?
Kan tillägga att all javascript ligger i en egen fil som heter scripts.js.asp och inluderas högst upp på varje undersida med SSI.
I nuläget gäller det administrationsgränssnittet och där kan jag tyvärr inte släppa in dig, men såhär fungerar det:
De olika språken ligger i egna XML-Filer, såhär ser den svenska ut (en liten del av javascriptbiten):
<toolbox>
<js_str_bold>Ange den text du vill göra fetstilt</js_str_bold>
<js_str_italic>Ange den text du vill göra kursiv</js_str_italic>
<js_str_underline>Ange den text du vill göra understruken</js_str_underline>
<js_str_through>Ange den text du vill göra genomstruken</js_str_through>
<js_str_insert_url>Ange en URL</js_str_insert_url>
<js_textsize>Textstorlek</js_textsize>
<js_size_1>Liten</js_size_1>
<js_size_2>Normal</js_size_2>
<js_size_3>Stor</js_size_3>
<js_size_4>Jättestor</js_size_4>
<phrase_js_size>Ange den text du vill ändra strorlek på.</phrase_js_size>
</toolbox>
När jag har å, ä & ö sådär, htmlenkodad, så får jag ett frågetecken istället för "rätt" bokstav i alertrutorna.
Har testat att skriva in "%uFFF", som är "ö", escape'ad med javascript. När jag sedan kör unescape i javascript, så blir det ändå frågetecken i alertrutan. HAr även testat att skriva just "ö", men samma sak där.
Språket hämtas in m.h.a en funktion i asp, som använder regExp för att plocka ut rätt sträng i xmlfilen.
Som det är i javascriptfilen just nu, så visas strängen som den är skriven, när jag inte använder unescape eller något sådant.
Du kan inte direkt använda "å" i XML eftersom entiteter deklareras i DTDn, och XML-processorer behöver inte läsa DTDn.
Du kan inte heller använda "å" som en sträng i javascript, eftersom det blir precis det.
Det du behöver göra är att se till att både XML-filen och JS-filen är sparade och serverade som utf-8.
Aha, så alla "konstiga" tecken ska skrivas precis som dom "ser ut" (å, ä ö) och det kommer funka sålänge XML-filen och JS-Filen är sparade som UTF-8?
I XML-filen, ska det även vara encoding="utf-8" ?
Nu ser en bit av XML-Filen ut såhär:
<?xml version="1.0" encoding="utf-8"?>
<language>Svenska</language>
<chpass>
<helpbox_chpass>Antingen har ditt lösenord förnyats eller så har du aldrig loggat in tidigare. Du måste därför skapa ett lösenord nu. Mata in ditt tillfälliga "engångslösenord" samt ett nytt.</helpbox_chpass>
<phrase_old_passwd>Gammalt lösenord:</phrase_old_passwd>
<phrase_new_passwd>Nytt lösenord: (6-8 tecken)</phrase_new_passwd>
<phrase_new_passwd_again>Nytt lösenord: (upprepa)</phrase_new_passwd_again>
</chpass>
</xml>
Men då sparar jag allt som UTF-8 så är det bara att åka sen?
När jag ändå tar upp det här, är det någon som har erfarenhet av japanska sidor, den här sidan jag håller på med ska nämligen även finnas på japanska, vi har skaffat fram en tolk, men hur löser jag det rent scriptmässigt?
Aha, så alla "konstiga" tecken ska skrivas precis som dom "ser ut" (å, ä ö) och det kommer funka sålänge XML-filen och JS-Filen är sparade som UTF-8?
I XML-filen, ska det även vara encoding="utf-8" ?
Jupp och jupp! Det är viktigt att filerna sparas i utf-8 också men det har redan påpekats. Det är viktigt. :)
Men då sparar jag allt som UTF-8 så är det bara att åka sen?
Jupp. XML kan du se som en informationskälla där informationen med fördel sparas "as is". XML kan användas på många olika sätt, webben är bara ett område. Sparar du infon med html-entiteter förlorar du lite av flexibiliteten, spottar du t.ex. ut innehållet till ett icke-webbaserat program hänger ju entiteterna med. Sparas informationen med utf-8 encoding kan du skicka infon till webbaserade program eller vanliga desktop-program utan att behöva köra infon genom ngt filter eller så. Toksmidigt! :)
När jag ändå tar upp det här, är det någon som har erfarenhet av japanska sidor, den här sidan jag håller på med ska nämligen även finnas på japanska, vi har skaffat fram en tolk, men hur löser jag det rent scriptmässigt?
Är det inte så att en del japanska tecken inte är med i utf-8, eller är det kanske Kinesiska jag tänker på? Isf kan man använda sig av utf-16 eller utf-32.
Jag har tyvärr inga erfarenheter om detta att dela med mig av.
<?xml version="1.0" encoding="utf-8"?>
<language>Svenska</language>
<chpass>
<helpbox_chpass>Antingen har ditt lösenord förnyats eller så har du aldrig loggat in tidigare. Du måste därför skapa ett lösenord nu. Mata in ditt tillfälliga "engångslösenord" samt ett nytt.</helpbox_chpass>
<phrase_old_passwd>Gammalt lösenord:</phrase_old_passwd>
<phrase_new_passwd>Nytt lösenord: (6-8 tecken)</phrase_new_passwd>
<phrase_new_passwd_again>Nytt lösenord: (upprepa)</phrase_new_passwd_again>
</chpass>
</xml>
Det här verkar inte vara välformad XML, borde nog se ut såhär:
<xml>
<language>Svenska</language>
<chpass>
<helpbox_chpass>Antingen har ditt lösenord förnyats eller så har du aldrig loggat in tidigare. Du måste därför skapa ett lösenord nu. Mata in ditt tillfälliga "engångslösenord" samt ett nytt.</helpbox_chpass>
<phrase_old_passwd>Gammalt lösenord:</phrase_old_passwd>
<phrase_new_passwd>Nytt lösenord: (6-8 tecken)</phrase_new_passwd>
<phrase_new_passwd_again>Nytt lösenord: (upprepa)</phrase_new_passwd_again>
</chpass>
</xml>
(Sidonotis: du skulle kunna använda xml:lang="sv" istället för <language>Svenska</language>.)
När jag ändå tar upp det här, är det någon som har erfarenhet av japanska sidor, den här sidan jag håller på med ska nämligen även finnas på japanska, vi har skaffat fram en tolk, men hur löser jag det rent scriptmässigt?
Är det inte så att en del japanska tecken inte är med i utf-8, eller är det kanske Kinesiska jag tänker på? Isf kan man använda sig av utf-16 eller utf-32.
Jag har tyvärr inga erfarenheter om detta att dela med mig av.
Ok, har själv inte en aning ;)
Men min kollega har grävt fram det här någonstans:
* Japanese Encodings: utf-8 (Unicode ), euc-jp , shift_jis,
* Language Code: ja (not "jp " for Japan)
Allt som finns med i utf-16 och utf-32 finns väll med i utf-8 trodde jag iaf, bara olika kodning bokstäverna tar upp olika stor plats. Kan hända att man får filerna mindre om man väljer nån av de andra.
Allt som finns med i utf-16 och utf-32 finns väll med i utf-8 trodde jag iaf, bara olika kodning bokstäverna tar upp olika stor plats. Kan hända att man får filerna mindre om man väljer nån av de andra.
Näej, eller jag vet faktiskt inte. Jag har för mig att det är såsom jag skrev men jag är inte säker. Jag ser gärna att någon rättar mig om jag har fel.
Näej, eller jag vet faktiskt inte. Jag har för mig att det är såsom jag skrev men jag är inte säker. Jag ser gärna att någon rättar mig om jag har fel.
Du har fel och aron har rätt. ;) UTF-8, UTF-16 och UTF-32 täcker alla hela Unicode, men tecknen representeras olika i bytes. "Alla" tecken finns i Unicode, inklusive kinesiska och japanska.
271 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849