Avatar billede biohazard_666 Nybegynder
22. april 2010 - 15:54 Der er 13 kommentarer og
1 løsning

Problemer med Æ Ø Å igen igen

Hejsa Eksperter

Nu har jeg siddet og søgt i de sidste par timer, men kan simpelthen ikke få min ASP.NET/VB.NET Applikation til at vise Æ Ø Å korrekt på min hjemmewebserver (IIS 7.5).
Jeg har forsøgt at sætte følgende i min web.config:

<globalization
      requestEncoding="iso-8859-1"
      responseEncoding="iso-8859-1"
      culture="da-DK"
    />

har også prøvet med UTF-8, men lige meget virker det.
Fx bliver "ø" erstattet med "ø". Har forstået det således, at det er pga mit ø nok er UTF-8 encoded, hvilket vist nok er 2 bytes, men bliver kun læst som enkelte bytes, og derved bliver ø "omdannet" til de to andre tegn.

Det sjove er, at indimellem får jeg det fremstillet som æøå som det skal, men hvis jeg refresher siden/navigerer rundt, så skifter det over til de ulæselige tegn.

Jeg bruger Visual Studio 2010 Beta 2 til min udvikling. Har prøvet at se på hvilken encoding filerne bliver gemt i, men har umiddelbart ikke kunnet finde ud af hvad den gemmer i som standard. Har dog fundet ud af, at man vha "Save As" kan specificere encoding for den enkelte fil.

Håber nogle har nogle forslag til hvad problemet kan være.


/Lars
Avatar billede biohazard_666 Nybegynder
22. april 2010 - 15:55 #1
Det skal endvidere siges, at det kun er når jeg har lagt filerne (vha VS2010 publish) på serveren, at jeg ikke kan se de danske bogstaver. Jeg kan sagtens se dem, når jeg blot kører projektet lokalt med ASP.NET Dev. Server.
Avatar billede arne_v Ekspert
22. april 2010 - 16:02 #2
Kunsten at få de danske bogstaver ud korrekt er der er konsistens mellem det faktisk indhol dog det som indholdet paastaaes at vare.

Din browser kan vis dig hvilken encoding server har fortalt browser og hvilken META tag der maate vaere indsat.

Du kan nemt teste faktisk indhold ved at bruge en hex editor.

Danske bogstaver er 1 byte med ISO-8859-1 og 2 bytes med UTF-8.
Avatar billede biohazard_666 Nybegynder
22. april 2010 - 16:40 #3
Jeg prøvede nu at kigge på de sendte headers vha. Internet Explorer (ieHTTPHeaders v 1.5), og fandt følgende:

GET / HTTP/1.1
Accept-Language: da-DK
Accept-Encoding: gzip, deflate

HTTP/1.1 200 OK
Content-Type: text/html; charset=iso-8859-1
Content-Encoding: gzip


Hvordan skal det fortolkes? Så vidt jeg kan se, burde det hele køre på iso-8859-1. Men hvad med "Content-Encoding: gzip"?
Avatar billede arne_v Ekspert
22. april 2010 - 16:54 #4
Serveren fortaeller browseren at det er ISO-8859-1.

Den fortaeller ogsaa at data er komprimeret, men det har ikke nogen betydning for dit problem.
Avatar billede janus_007 Nybegynder
22. april 2010 - 19:54 #5
UTF-8 dur ihvertfald ikke, det er ikke andet end bøvl og forvirring i det lange løb. Guderne må vide hvor mange Xml-docs jeg snart har fedtet rundt med fordi nogle har gemt det med Utf8 og så fyldt æøå i *LOL* - not funny!

Gem som Western European 1252

Iso 8859 er faktisk udgået som i supporteres/ videreudvikles ikke længere :)
Avatar billede arne_v Ekspert
23. april 2010 - 01:48 #6
CP-1252 er ISO-8859-1 (med nogle grafiske karakterer i.s.f. kontrol koder, hvilket ikke er så relevant her).

UTF-8 det der er fremtid i og om 10 år vil CP-1252/ISO-8859-1 være lige relevant som 16 bit Windows idag.
Avatar billede biohazard_666 Nybegynder
23. april 2010 - 09:34 #7
Ud fra min læsning har jeg også hørt (læst) at UTF-8 er "fremtiden".

Men nu da browseren siger at min side er encoded som ISO-8859-1, burde det så i realiteten ikke virke?
Det passer egentlig meget godt at browseren får af vide, at det er den encoding, for jeg fik det ovenstående resultat med følgende i min web.config:

<globalization
      requestEncoding="iso-8859-1"
      responseEncoding="iso-8859-1"
      culture="da-DK"
    />

Så må det vel næsten betyde, at min fil encoding er forkert?
Avatar billede janus_007 Nybegynder
23. april 2010 - 09:57 #8
Vi snakker ikke om hvad der dur om 10 år Arne, vi taler om nu og her gemmer du et eks.vis et xml document med æåø og encoding UTF 8 bliver du meget upopulær overfor forbrugeren.

Nu kan jeg også læse Wiki: http://en.wikipedia.org/wiki/Windows-1252 , men det interessante er stadig at ISO8859-1 ikke videreudvikles, hvilket betyder forældelse og manglende understøttelse.

Dokumenter med æøå skal enten gemmes i ISO8859-1 eller bedre i Windows 1252, ikke UTF8!
Avatar billede biohazard_666 Nybegynder
23. april 2010 - 10:09 #9
Prøvede lige at gemme filerne med Windows-1252 samt ændre min Web.Config til

<globalization
      requestEncoding="windows-1252"
      responseEncoding="windows-1252"
      culture="da-DK"
    />

hjælper dog ingenting :(
Mine headers er ændret okay:

Content-Type: text/html; charset=Windows-1252


Kan det have noget at gøre med, at mine specialtegn ligger i labels? Da jeg lige tog et hurtigt kig rundt på siden, så er problemet der vist kun, når mine specialtegn er skrevet i asp:labels - og ikke hvis de er "hardcoded" i min markup.
Avatar billede biohazard_666 Nybegynder
23. april 2010 - 10:38 #10
Kan også se, at hvis jeg forsøger at køre en forespørgsel som denne:

UPDATE [Tekst] SET [Tekst].[Tekst] = 'Test!æøåøæå!' WHERE [Komnr] = 11 AND [Type] = 'Forside'

Så får jeg følgende fejl:
Handlingen skal bruge en opdaterbar forespørgsel.

Mens hvis jeg forsøger at køre denne forespørgsel:
UPDATE [Tekst] SET [Tekst].[Tekst] = 'Test!' WHERE [Komnr] = 11 AND [Type] = 'Forside'

Så er der ingen problem overhovedet =/
Dette gør sig kun gældende på min IIS 7.5 server - altså IKKE på ASP.NET Development Server'en - præcis som problemet med visning af ÆØÅ.

Det tyder jo lidt på, at det kunne være et konfigurationsproblem.
Avatar billede biohazard_666 Nybegynder
23. april 2010 - 10:55 #11
Endnu noget jeg opdagede: En cookie jeg opretter (som jeg senere henter og viser) indeholder de ÆØÅ-tegn der fejler.

Fandt lige et program der hedder HTTP Analyzer v4, og det viser min gemte cookie med det "forkerte" specialtegn.
Avatar billede biohazard_666 Nybegynder
23. april 2010 - 12:58 #12
Ser ud til at problemet lå i, at mine session data ikke blev gemt med ÆØÅ, så brugte en anden måde at få fat i navnet på.

Nu er problemet så bare, at jeg ikke kan udføre nogle SQL-sætninger hvis der er ÆØÅ i :/
Avatar billede biohazard_666 Nybegynder
23. april 2010 - 13:53 #13
Så fik jeg også løst det problem! Det var simpelthen skriverettigheder til mappen/databasen den var gal med. Underligt, for var sikker på, at den godt kunne udføre nogle simple opdaterings- og skrivningsforespørgsler.
Avatar billede biohazard_666 Nybegynder
18. september 2010 - 19:24 #14
Må hellere få lukket det her. Hvis nogen af jer vil have point, skal i være velkommen til at poste og så kan jeg oprette spørgsmål og smide point jeres retning :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester