Du skal escape dine variable inden du sender dem. Når du escaper laver Flash dem om til HTML-formateret tekst som din formmail ganske givet forstår. Hvis du henter nogle informationer fra et tekstfelt, kommer det til at se nogenlunde sådan her ud:
men det er denne formel jeg bruger. jeg laver et felt og giver det et navn, derefter henvises det enkelte felt til dette script der ligger på serveren. Der er sikkert en meget nemmere løsning ;) Tak for svaret
Det der går galt er at Flash sender dine data som UTF-8, mens du sender mailen som ISO-8859-1. Enten skal du konvertere fra UTF-8, eller også skal du lave dit mailscript om så det i stedet sender mailen korrekt ud og markerer det er UTF-8 der er anvendt.
Du kan nu stadigvæk komme udenom det i Flash ved at escape dine variable før du sender.
I din opsætning gætter jeg på at du 100% forlader dig på at Flash rent faktisk ved hvad der skal sendes. Jeg kender godt selv proceduren og har altid betragtet det lidt som magi at det rent faktisk lykkes :)
Du bliver nødt til at få kontrol over dit input. Som før nævnt kan du gøre det ved at hente den tekst fra tekstfelterne der er tastet ind: minVariabel = mitTekstfelt.text;
Nu har du så en variabel du kan gøre noget med: minVariabel = escape(minVariabel)
Problemet er så at du bruger getURL til at sende med. Vil du det og er det smart? Ellers kan du nemlig sende igennem LoadVars-objektet og det har sine fordele.
Det kommer til at se ud som noget i retning af:
var k:LoadVars = new LoadVars(); k.onLoad = function() { trace("Så er der afsendt et eller andet"); } k.minvar = escape(mitTekstfelt.text); k.minAndenVar = escape(mitAndetTekstfelt.text); k.send("somewhere.asp", "_blank", "POST");
Hvis vi antager at en streng sendes url-konverteret fra Flash (hvis default afsendelsesformat er UTF-8), så vil der vel ikke være problemer med danske karakterer selvom ASP-siden tror den er ISO-et-eller-andet? Eller fungerer ASP på en anden måde end jeg er vant til fra PHP?
Problemet er ikke at ASP-siden tror det er ISO-8859-1, men at mailen bliver sendt som dette format.
URL-converting sikrer blot at strengen er skrevet på en måde så den ikke giver problemer når den bruges i en webadresse, men det vil stadig være UTF-8 der bruges i dataen. Det eneste du derfor ender med er en streng der skal unescapes når ASP-scriptet modtager det, og STADIG konverteres til det rette tegnsæt.
Hvis Flash rent faktisk konverterer strengen til ISO-8859-1 når den gør det der, må det efter min opfattelse være en fejl, da det ikke er dokumenteret, og du samtidigt vil få et problem med tegn der ikke findes i ISO-8859-1 (såsom kyrillisk).
Du vil i øvrigt have præcist samme problem i PHP, fordi det også der ville blive sendt som ISO-8859-1 - der har du bare funktioner til at konvetere mellem tegnsættene.
myMail.BodyFormat=1 myMail.MailFormat=1 myMail.From=request.form("email_b") myMail.To=request.form("email_b") myMail.Subject="Spalten.dk - Dit GRATIS Online Magasin" myMail.Body=myBody myMail.Send myMail.(ET AF DE 3 MYMAIL FORSLAG IND HER IK´) set myMail=nothing
Mig bekendt gør den der at systemets egen codepage bliver brugt, men det hjælper dig ikke hvis systemet benytter en anden codepage end du gør - man kan jo godt skrive "Jørgen" på en japansk Windows ved at sætte dansk tastatur på, men det bliver ikke sendt som ISO-8859-1, men derimod Shift-JIS - derfor er det ikke nogen holdbar ide, omend den måske kan bruges her.
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.