åöä i för mac och pc i en alert i javascript?

Tråden skapades och har fått 5 svar. Det senaste inlägget skrevs .
1

Hej,

Hur ska jag koda versala Å för att det ska funka på både mac och pc i en alert i javascript?

jag har följande koder:
å = Œ
ä = Š
ö = š
é = ž
Å = (saknas)
Ä = €
Ö = _
É = ƒ

/Jesper

  • Medlem
  • Mölndal
  • 2007-04-17 12:08

Nu gör du det onödigt svårt för dig!

DET ENDA som krävs för att svenska tecken ska fungera korrekt (i JavaScript, så väl som i HTML) är att samma teckenkodning används när du sparar filen, när den skickas av servern och när den visas i browsern.

Eftersom du gissningsvis sitter på en mac kommer dina filer att sparas med teckenkodning UTF-8 (en form av Unicode). Det som då krävs för att svenska tecken ska bli korrekta är att webbservern vet att du skrivit UTF-8 och också talar om det för anslutande klient.

I t ex BBedit kan du mha Spara som... välja teckenkodning på filen. Hur editerar du filen?

Det finns två sätt att på en webbsida ange teckenkodning, antingen på servern ("HTTP Header") eller i det som skickas ("<meta>-element"). Om en header finns så kommer den alltid att ha företräde, i annat fall används meta. Man bör (enligt mig) använda båda, och se till att de säger samma sak.

Lättaste sättet att kolla vilken teckenkodning en sida använder är att öppna sidan i Firefox, högerklicka på den och välja View Page Info. Leta efter "Encoding" eller "Content-Type".

Gör man allt ovanstående på rätt sätt kan man skriva sina svenska tecken rakt upp och ner och allt kommer fungera!

Tyvärr är det mer komplicerat än så.
Javascriptet är fullt med felmeddelanden som visas i en e-handelslösning baserat på en lösning med en servlet på IIS-plattform. Till javascripet finns en språkfil som ska gå in och ersätta meddelandena beroende på valt språk. Skriver vi i klartext i språkfilen dvs å ä ö blir det i alertboxarna rätt på en PC men fel på en mac.

  • Medlem
  • Mölndal
  • 2007-04-23 11:49

Javisst, men oavsett hur lösningen så är det viktiga att rätt teckenkodning används på de olika ställena. Har du koll på vad som används var?

Att det blir rätt på PC och fel på Mac (alla läsare?) tyder på att information om teckenkodning saknas någonstans i kedjan. PCn antar då ISO-8859-1 och Macen UTF-8 när inget annat anges. Jag är övertygad om att det går att styra upp detta och få samma beteende på de två plattformarna. Vad händer t ex om du ändrar defaultkodning i macens läsare?

Jag skulle använda html-entities :
http://www.w3schools.com/tags/ref_entities.asp

det blir inte jättesnyggt, men det fungerar

å = å
ä = ä
ö = ö
é = é
Å = Å
Ä = Ä
Ö = Ö
É = É

Det här är ett skolexempel på varför man ska bestämma sig för en teckenkodning för ett projekt, hålla sig till den och se till att servern skickar rätt teckenkodningsinfo. Annars är man dömd att hamna i skräpteckenhelvetet. Håller med memark, styr upp teckenkodningsinformationen så att den angivna teckenkodningen stämmer med den faktiska så försvinner problemet.

En sak man behöver tänka på är dock att man inte kan förlita sig på http-information i metataggar. HTTP-huvudena som servern skickar ut har alltid högre precedens så om servern anger teckenkodning i sin Content-Type-header ignoreras motsvarande metatagg. Man kan alltså behöva ange rätt teckenkodning i webbserverkonfigurationen också.

1
Bevaka tråden