Avatar billede spalten Nybegynder
08. juli 2006 - 13:39 Der er 21 kommentarer og
1 løsning

Flash formmail - Hvordan får jeg mailen til at forstå dansk

Jeg har lavet en formmail der virker, men når jeg sender tekst med æøå kan den ikke rigtig finde ud af at skrive det.

F.eks: Jørgen bliver til jørgen

Hvordan får jeg mailen til at forstå dansk ???
Avatar billede _k Nybegynder
09. juli 2006 - 18:07 #1
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:

variabelJegVilSende = escape(mitTekstfelt.text);
Avatar billede spalten Nybegynder
09. juli 2006 - 22:43 #2
Jeg er ikke helt med - her er den mail form jeg bruger

Hvor i den skal jeg sætte det ind så den forstår dansk ?

-----------------------------------------------------------------------
<% @language="VBSCRIPT" %>

<%

    Dim myMail, myBody
       
        myBody = "Navn: "& request.form("name_b") & vbcrlf
        myBody = myBody & "Email: "& request.form("email_b") & vbcrlf
        myBody = myBody & "Besked: "& vbcrlf & request.form("message_b")

    Set myMail = CreateObject("CDONTS.NewMail")

    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

    set myMail=nothing

%>

<html>
<title>mail</title>
<meta http-equiv="refresh" content="2;URL=http://www.spalten.dk">
<body bgcolor="#FFFFFF" text="#000066" link="#0000CC" vlink="#0000CC" alink="#0000CC">
<div align="center">
  <p><font face="Verdana" size="2" color="#000080"> <font face="Arial, Helvetica, sans-serif" size="4"><b>Mail sendt</b></font></font></p>
</html>

-----------------------------------------------------------------------
Avatar billede _k Nybegynder
09. juli 2006 - 23:20 #3
Øhm..... jeg er heller ikke helt med. Hvad har det med Flash at gøre?

Du skal nok hen i en anden kategori, sikkert den med asp.....
Avatar billede spalten Nybegynder
10. juli 2006 - 05:33 #4
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
Avatar billede _k Nybegynder
10. juli 2006 - 09:57 #5
Koden ser såmænd ganske fornuftig ud og kan nok ikke gøres meget simplere.

Hvis du kalder den fra Flash, hvordan ser koden i Flash så ud?
Avatar billede spalten Nybegynder
10. juli 2006 - 19:45 #6
jeg laver f.eks denne kode og kalder selve asp filern ris/ros

der efter laves de enkelte felter i flash og send koden indeholder dette:

on (release) {
    getURL("mail_form/ris_ros_mail.asp", "", "POST");
}

det er dejligt nemt - hvis den da kunne forstå dansk ;)
Avatar billede pidgeot Nybegynder
10. juli 2006 - 19:48 #7
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.
Avatar billede spalten Nybegynder
11. juli 2006 - 05:41 #8
okay jeg vil gerne gøre det sidste men hvordan gøres det ?
Avatar billede _k Nybegynder
11. juli 2006 - 12:03 #9
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");
Avatar billede pidgeot Nybegynder
11. juli 2006 - 12:18 #10
Nu kender jeg ikke din mailkomponent (bruger ikke ASP), men efter hvad jeg lige kan læse mig frem til må det være enten denne:

myMail.value("Content-type") = "text/plain; charset=utf-8"
myMail.value ("Content-transfer-encoding") = "8bit"

eller denne:

myMail.SetLocaleIDs(65001)

hvor 65001 er ID-nummeret på UTF-8's code page.
Avatar billede pidgeot Nybegynder
11. juli 2006 - 12:59 #11
_k, escape laver strengen om til en URL-converted streng (se http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary199.html). Det konverterer ikke fra UTF-8 til ISO-8859-1, og derfor hjælper dit forslag ikke.
Avatar billede _k Nybegynder
11. juli 2006 - 14:19 #12
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?
Avatar billede pidgeot Nybegynder
11. juli 2006 - 15:08 #13
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.
Avatar billede spalten Nybegynder
11. juli 2006 - 16:52 #14
Altså pidgoet...

skal min kode sså se sådan her ud.

Se under mymail, er det sådan ???

-------------------------------------------------

<% @language="VBSCRIPT" %>

<%

    Dim myMail, myBody
       
        myBody = "Navn: "& request.form("name_b") & vbcrlf
        myBody = myBody & "Email: "& request.form("email_b") & vbcrlf
        myBody = myBody & "Besked: "& vbcrlf & request.form("message_b")

    Set myMail = CreateObject("CDONTS.NewMail")

    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

%>

<html>
<title>mail</title>
<meta http-equiv="refresh" content="2;URL=http://www.spalten.dk">
<body bgcolor="#FFFFFF" text="#000066" link="#0000CC" vlink="#0000CC" alink="#0000CC">
<div align="center">
  <p><font face="Verdana" size="2" color="#000080"> <font face="Arial, Helvetica, sans-serif" size="4"><b>Mail sendt</b></font></font></p>
</html>
Avatar billede pidgeot Nybegynder
11. juli 2006 - 17:24 #15
Nej, det skal ind *før* Send. Efter er det jo for sent.

Bemærk også lige at de to øverste linier er ET forslag - de hører sammen ;)
Avatar billede sirbatman Nybegynder
12. juli 2006 - 00:14 #16
Hej spalten!

Indsæt dette i din flash movie, frame 1, action script

System.useCodepage = true;

Dette gør at jeg får normale æ ø og å'er fra min form mail. Min er lavet i php, men mon ikke det også virker i asp...
Avatar billede pidgeot Nybegynder
12. juli 2006 - 00:27 #17
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.
Avatar billede spalten Nybegynder
12. juli 2006 - 05:49 #18
tak jeg forsøger lige alle forslagene og vender tilbage så hurtig som muligt - endtil videre tak... ;)
Avatar billede spalten Nybegynder
12. juli 2006 - 17:24 #19
ja så virker det tak til jer begge, men for at det skal være fair var det sirbatman´s forslag der virkede...

TAK, fedt at man kan hente hjælp herinde ;)

Lige en lille ting til... hvordan giver jeg sirbatman point ???
Avatar billede spalten Nybegynder
12. juli 2006 - 17:25 #20
s
Avatar billede sirbatman Nybegynder
12. juli 2006 - 21:36 #21
Fedt det virker!!!!!

For at give point skal du bare acceptere dette svar
Avatar billede spalten Nybegynder
13. juli 2006 - 05:30 #22
lukket ;)
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