Avatar billede olmer Nybegynder
11. februar 2008 - 09:44 Der er 8 kommentarer og
1 løsning

Encoding problem (tror jeg)

Jeg har følgende kode som viser et link på en aspx side og det virker for så vidt godt nok

string mail = "<a href=\"mailto:" + partnerRow["SHOP_EMAIL"].ToString() + "?subject=Vedr.%20henvendelse%20fra%20Modstrøms%20hjemmeside" + "\">" +
partnerRow["SHOP_EMAIL"].ToString() + "ø" + "</a>";

((Literal)e.Item.FindControl("lEmail")).Text = mail;

jeg får vist linket rigtig, men når jeg så aktiverer det og den åbner outlook vises æ,ø, og å som underlige karakterer i subject feltet. Jeg gætter på at jeg skal skifte encoding på strengen "mail", men til hvad og hvis en har et kort eksempel, så gerne hvordan

Ole

Jeg har på forslag fra Arne_v prøvet med

HttpUtility.UrlEncode(subj, Encoding.UTF8)

eller

HttpUtility.UrlEncode(subj, Encoding.Default)

men det virkede ikke, jeg får det samme specialtegn
Avatar billede powerpunk Nybegynder
11. februar 2008 - 10:03 #1
Prøv med HttpUtility.Decode i stedet... Det er jo den anden vej du skal have det...
Avatar billede olmer Nybegynder
11. februar 2008 - 12:51 #2
Øv øv ingen af dem virker :-(

nogen forslag?
Avatar billede olmer Nybegynder
11. februar 2008 - 13:32 #3
Jeg kan få linien til at blive vist korrekt hvis jeg går ind under internationale indstillinger i outlook under postformat, og markerer det felt det hedder
internetprotokoller -> aktiver UTF-8-support til mailto:-protokol.

Desværre kan man jo ikke rigtigt tvinge samtlige kunder til at foretage denne ændring, specielt da det formentlig kun er en funktion de benytter en gang.
Det forlyder at det er IIS'en der skal fifles lidt med, så jeg borer videre den vej, men jeg lader nu spørgsmålet stå åbent lidt endnu, hvis der er en der skulle få et genialt indfald
Avatar billede wisen Nybegynder
11. februar 2008 - 21:49 #4
Prøv at kig' lidt på den her... http://www.w3schools.com/tags/ref_urlencode.asp

Som jeg læser dit spørgsmål, så er det subject-strengen der er problemet? - du bruger allerede "%20" for mellemrum... prøv også at erstatte "ø" med "%f8"

/Wisen
Avatar billede powerpunk Nybegynder
12. februar 2008 - 08:12 #5
Jeg kan se at jeg tågede lidt da jeg skrev sidst...

Skulle det være noget skulle det vel være HttpUtility.UrlEncode - men det virker tilsyneladende heller ikke.

Som olmer er inde på 11/02-2008 13:32:34 så lader det bare ikke til at UTF-8 er understøttet i mailto links.

Der er en setting i IE7 som hedder "Use UTF-8 for mailto links". Den er tilsyneladende slået fra pr. default.
Jeg kører ikke outlook, men notes, så jeg skal ikke kunne sige hvordan outlook har det med sådan noget - men notes er ikke glad for det link. Selvom IE7 synes at have UTF8'ificeret det, ser Notes det stadig som "Vedr. henvendelse fra Modstr&#9500;©ms hjemmeside"

Så er der sikkert også en setting i Notes, hvor jeg kan vælge at acceptere mailto links i UTF-8, men som olmer også er inde på er det ikke rigtig brugbart at skulle bede brugerne om at sætte både deres IE og deres Outlook op...

Så hvis man pinedød vil have en subject linie der indeholder ikke-standard-ascii karakterer er man nok nødt til at gå andre veje. Ville det være en brugbar løsning at lave en mail-formular på websiden, hvor body kunne udfyldes via en tekstboks, og mailen så blev sendt server-side?
Avatar billede olmer Nybegynder
12. februar 2008 - 09:24 #6
Wisen det virker (næsten). nu får jeg vist ø korrekt når jeg ikke har markeret
"aktiver UTF-8-support til mailto:-protokol", men til gengæld viser den ikke ø eller noget andet tegn når den er markeret. Men jeg formoder at de fleste kører med default opsætning i outlook, så vi vælger Wisen's løsning. Lægger du et svar Wisen?

Ole
Avatar billede wisen Nybegynder
12. februar 2008 - 09:30 #7
hmm... det lyder ikke som en perfekt løsning... men hvis det virker :)
Avatar billede powerpunk Nybegynder
12. februar 2008 - 10:11 #8
FYI: Løsningen synes ikke at være brugbar i Lotus Notes. Der kommer 'ø' et til at stå som et 'grader' tegn...
Avatar billede finnlehmkuhl Nybegynder
22. maj 2008 - 15:08 #9
æ har ASCI værdien 230, hvilket i det hexadecimale talsystem har værdien e6. For at angive et æ skal man i koden skrive % og derefter hexadecimalkoden e6 - eksempel ”et %e6ble om dagen holder l%e6gen v%e6k”.


æ = %e6

Æ = %c6

ø = %f8

Ø = %d8

å = %e5

Å = %c5


http://www.papkassen.esenet.dk/sider/tags/tegn.html findes en liste over de vigtigste Iso tegn. Og så er det bare frem med lommeregneren i scientific tilstand, så man kan omregne dec til hex. God fornøjelse.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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