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.
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.
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:
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 :-(
- 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 :-|
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 :-(
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.
Synes godt om
Ny brugerNybegynder
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.