Avatar billede bluwduch Nybegynder
22. januar 2004 - 16:25 Der er 10 kommentarer

Session.Codepage placering?

Hejsa

Jeg skal bare ha' bekræftet om det virkelig kan passe at session.codepage skal stå i toppen af en side før den virker som den skal? - Og om det kan omgås på nogen måde hvis det er tilfældet?

Jeg sidder nemlig og skal sætte codepagen udfra nogle kriterier, men efter de kriterier er fundet, så nytter det ikke noget at sætte codepagen, da det tilsyneladende først virker efter næste gang siden hentes.
Avatar billede eagleeye Praktikant
22. januar 2004 - 16:49 #1
Umiddelbart skal det vel sættes før man skrive HTML kode til browseren. Så i toppen betyder før <html> taget og de følgende HTML tags.
Avatar billede bluwduch Nybegynder
23. januar 2004 - 09:34 #2
Det er en ren ASP-fil uden noget HTML i, så de tags eksisterer slet ikke. Hvis codepage dog står som det allerførste i ASP-filen, så virker det, men da den skal sættes afhængig af en QueryString, så laver jeg lige en If først, og så snart man gør det, så er det jo ikke længere den først linie i filen. Virker da åndssvagt at jeg står og skal lave en fil pr. codepage.
Avatar billede bluwduch Nybegynder
23. januar 2004 - 11:04 #3
Kan man kode sig ud af det, eller måske ændre nogle indstillinger i IIS?
Avatar billede eagleeye Praktikant
23. januar 2004 - 11:19 #4
hmm det lyder underlidt, for det skulle være muligt efter de eksempler man kan finde:
http://www.devguru.com/Technologies/asp/quickref/session_codepage.html
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/iis/ref_vbom_sesopcp.asp

Eller har du prøvet:  Response.CodePage
Avatar billede bluwduch Nybegynder
23. januar 2004 - 12:14 #5
Ja, det er underligt :-|

Kan dog stadig ikke få det til at virke selvom jeg har fulgt eksemplet fra Devguru til punkt og prikke. Når man gør det som de siger, skifter den aldrig session.codepage ud før siden er blevet refreshet. Her er lidt kode:

session("codepage") = session.codepage
session.codepage = request.querystring("cp")
EncodedString = Request.querystring("EncodedString")
SaveString(EncodedString)
session.codepage = session("codepage")

Altså - Jeg gemmer den codepage der er i brug (1252) - Henter den nye fra QueryString og sætte den i brug (65001) - Henter den encodede variable og gemmer den i databasen (SQL Server 2000), og opretter derefter codepagen som den var. Ikke noget hemmeligt her, andet end at 65001 ikke virker, da session.codepage ikke træder i kraft selvom man sætter den, før siden har været refreshet :-(
Avatar billede bluwduch Nybegynder
23. januar 2004 - 12:26 #6
Jeg har prøvet response.codepage, men den virker heller ikke!
Avatar billede eagleeye Praktikant
23. januar 2004 - 16:45 #7
det forstår jeg ikke for hvis jeg laver en kode som denne:
<%
Session("CodePage") = Session.CodePage

text = "æøå"
Response.Write text

ID = 65001
Session.CodePage = ID
Response.Write text

Session.CodePage = Session("CodePage")
%>

Skriver den dette ud:  æøåæøå
Avatar billede bluwduch Nybegynder
26. januar 2004 - 09:38 #8
Ja, det kan jeg godt se...

- Tror måske problemet ligger i at jeg får 'text'en fra QueryString, som kan være encoded forskelligt, og gemmer den i en tabel på MSSQL Server, og det er egentlig her de skal være gemt rigtigt. Det bliver de egentlig også, men ikke når opstillingen er som du har skrevet... Måske ligger det så et sted i SQL Serveren :-|
Avatar billede bluwduch Nybegynder
26. januar 2004 - 10:44 #9
Nu har jeg pillet lidt videre med det, og det eneste jeg laver til forskel er at jeg henter den CodePage der skal bruges fra QueryString - Dette gør tilsyneladende at ændringen ikke træder i kraft med det samme.

Det ses ved, at jeg sender ordet der skal gemmes og den codepage der skal bruges med - Første gang det sker, hvis der er en ændring i den codepagen, så gemmes ordet forkert - Gør man dog det samme straks efter, så virker det fint, og det gør det fremover indtil det ord der skal gemmes kræver at codepagen ændres til noget andet (jeg skifter mellem 1252 og 65001), så gemmes det første ord forkert og dernæst fint nok... Det her giver grå hår :-(
Avatar billede bluwduch Nybegynder
26. januar 2004 - 11:05 #10
Hmmmm!

Det har helt sikkert noget med den Request.QueryString at gøre... Nu prøver jeg Response.Codepage, og det virker hvis jeg sætter den manuelt til 65001, men ikke hvis jeg:

response.codepage = Request.Querystring("cp")

Det er dog ikke til at finde noget information om hvorfor den gør som den gør.
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