Avatar billede j-roar-h Nybegynder
04. december 2010 - 15:33 Der er 21 kommentarer og
1 løsning

Charset til mobilhjemmeside

Hej,

Jeg er ved at lave en hjemmeside der er optimeret til mobiltelefoner.

I den forbindelse skal jeg lave en kontaktformular i asp. Jeg kan også godt få selve kontaktformularen til at sende, problemet er bare at den mail jeg modtager ikke understøtter æ, ø og å.

Jeg har sat den til charset=UTF-8, men jeg har også prøvet med charset=ISO-8859-1.

Problemet med UTF-8 er at mailen vises forkert, og problemet med charset=ISO-8859-1 er at selve indholdet på siden (på mobilen) ikke viser æ, ø og å.

Er det nogen der ved om der findes en charset der han æ, ø og å, og som virker på mobiltelefoner?
Avatar billede keysersoze Ekspert
04. december 2010 - 16:35 #1
det lyder som om at du kun sætter charset som meta-tag er det korrekt? charset gælder flere andre steder - fx hvordan er filen gemt og hvordan sendes den fra serveren og alle steder skal det stemme overens, se fx http://www.web-dev.dk/post/Korrekt-visning-af-specielle-karakterer-character-encoding.aspx
Avatar billede j-roar-h Nybegynder
04. december 2010 - 16:54 #2
Ja, det er korrekt at jeg kun har den i meta-tag. Filen ligger i roden af den normale hjemmeside, det vil sige at det ligger her: www.ringstedtennisklub.dk/m.html

Hvor skal jeg ellers sætte den ind? min kode ser sådan ud:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Ringsted Tennisklub</title>
        <link rel="stylesheet" type="text/css" href="m/CSS/phone.css"media="screen" />
        <script src="m/rotation/rotationsbilleder/rotation.js" type="text/javascript"></script>
        <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="/favicon.ico" />
        <link rel="apple-touch-icon" href="/gfx/mobile/iphone_icon.png" />
        <meta name="viewport" content="width = device-width, user-scalable=yes" />
        <meta name="HandheldFriendly" content="true" />
        <meta name="format-detection" content="telephone=no" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
       
    </head>
    <body>




            <div class="page">
                <div class="header clearfix">
          <div class="clearfix"><a href="m.html"><img src="m/images/RTKlogo.png" class="logo" /></a></div></div>
         
         
               
               
              <div class="contentblock_menu clearfix"><ul class="menu">
                <li><a href="m/klubinfo.html">Klubinfo</a></li>
                <li><a href="m/nyheder.html">Nyheder</a></li>
                <li><a href="m/junior.html">Junior</a></li>
                <li><a href="m/senior.html">Senior</a></li>
                </ul></div>
                <div class="contentblock banner clearfix"><script>document.write("<img src='m/images/forsideBillede_" + Math.floor(Math.random()*10+1) + ".jpg' />")</script></div>
               
              <div class="contentblock_nyheder clearfix_menu"><h1>Nyheder</h1><ul class="undermenu">
              <li><a href="/Uddannelse/Folkeskolen.aspx?mobile=1">U9 sejr i Holbæk</a></li>
              <li><a href="/Uddannelse/Frie skoler.aspx?mobile=1">Oprykning sikret</a></li>
              <li><a href="/Uddannelse/Gymnasiale uddannelser.aspx?mobile=1">Nattennis</a></li>
              <li><a href="/Uddannelse/De videregaaende uddannelser.aspx?mobile=1">Finaleplads til juniorspiller</a></li>
              <li><a href="/Uddannelse/Erhvervsuddannelser.aspx?mobile=1">U16 hold får spillertøj af IF</a></li></ul></div>
               
                <div class="copyright">Ringsted Tennisklub 2010</a>
                </div>
                <div><a href="http://ringstedtennisklub.dk" class="home">Gå til ringstedtennisklub.dk</a></div>
            </div>
    </body>
</html>
Avatar billede keysersoze Ekspert
04. december 2010 - 17:25 #3
Det hele står i artiklen, du skal bla kigge påhvordan filen er gemt - det kan du fx se gennem notepad.

Hvis ovenstående er din færdige kode ville denne artikel også være et besøg værd; http://www.web-dev.dk/post/DOCTYPE-og-valid-kode-ens-udseende-i-Internet-Explorer-og-FireFox.aspx
Avatar billede j-roar-h Nybegynder
04. december 2010 - 18:06 #4
Jeg har nu læst begge de sider du linket til igennem og ingen hjalp mig.

Jeg prøvede at sætte denne kode ind: <system.web>
  <globalization responseEncoding="utf-8" requestEncoding="utf-8" fileEncoding="utf-8" />
</system.web>

Men det hjalp ikke.
Avatar billede keysersoze Ekspert
04. december 2010 - 18:43 #5
det sidste link er kun omkring din xml-deklaration - den skal ikke være der.

Hvordan har du gemt din fil? ANSI? UTF-8?

koden du refererer til er kun til ASP.NET - ikke klassisk ASP. i ASP skal du nok over at kigge på Response.Charset og/eller Session.CodePage.
Avatar billede j-roar-h Nybegynder
04. december 2010 - 18:50 #6
Umiddelbart vil jeg tro det et UTF-8. Det er det der står i koden. Jeg kan ikke se det ved at kikke i notepad da jeg sidder på mac.

Og om det er ASP.NET elle klassisk ASP ved jeg heller ikke. Jeg har taget en html fil og omdøbt den til .asp..
Avatar billede keysersoze Ekspert
04. december 2010 - 19:36 #7
hvad der står i koden har intet med hvordan filen er gemt at gøre - hvordan du kan se det på en mac ved jeg ikke, men det er yderst relevant at finde ud af, som standard gemmes formentlig i ANSI. ASP.NET er .aspx - klassisk ASP er .asp, så det er dette du skal arbejde ud fra.
Avatar billede j-roar-h Nybegynder
04. december 2010 - 20:00 #8
Jeg har nu prøvet et se på en pc. Der står der det er UTF-8 og ikke ANSI. Jeg kunne dog ikke finde noget der hed Advanced Save Options, men hvis man bare valgte save as, stod der UTF-8 i Encoding.
Avatar billede keysersoze Ekspert
04. december 2010 - 21:06 #9
hvis du har sat korrekt charset i filen, filen er gemt med samme charset og det stadig giver problemer må du prøve at kigge på de to ASP-muligheder jeg gav i #5.
Avatar billede j-roar-h Nybegynder
05. december 2010 - 11:17 #10
Jeg har nu prøvet med de to du nævner, men det hjalp heller ikke.

Jeg har prøvet at indsætte dette:

Response.Charset="ISO-8859-1"
eller.. Response.CharSet = "UTF-8"

Det indsatte jeg her:

  Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
  Mailer.RemoteHost = "HOST"
  Mailer.AddRecipient request.Form("navn"), request.Form("mail")
  Mailer.Subject = "Kontakt webmaster"
  Mailer.FromName = "Ringsted Tennisklub"
  Mailer.FromAddress = "webmaster@ringstedtennisklub.dk"
  Mailer.ReplyTo = "webmaster@ringstedtennisklub.dk"
  Mailer.ContentType = "text/html"
  Response.CharSet = "UTF-8"
 
  msg = "<html><body><span style=""font-family: Calibri, Verdana; font-size: 14px; color: #333333;"">"
  msg = msg & "Kære " & request.Form("navn") & "<br><br>"
  msg = msg & "Vi har nu modtaget din besked, som vi vil besvare hurtigst muligt.<br><br>"
  msg = msg & "<strong>Med venlig hilsen</strong><br>Ringsted Tennisklub<br><img src=""http://www.ringstedtennisklub.dk/Images/RTKlogo_alt.gif"">"
  msg = msg & "</span></body></html>"
  Mailer.BodyText=msg
  Mailer.CharSet = 2

Jeg prøvede også at indsætte dette:

Response.CodePage = 65001
Response.ContentType = "text/html"

Men det hjalp heller ikke..
Avatar billede keysersoze Ekspert
05. december 2010 - 11:34 #11
Det er svært at se udefra hvis du har fulgt alt i guiden - så letteste alternative må næsten være at du HTML-encoder det du sender i mail;

Server.HtmlEncode("dintekst")
Avatar billede j-roar-h Nybegynder
05. december 2010 - 12:10 #12
Jeg har ikke fuldt nogen guide, jeg fandt de koder jeg satte ind i et andet spørgsmål her på eksperten.

Jeg ved ikke helt hvordan det Server.HtmlEncode("dintekst") virker.

Hvor skal det sættes ind? Jeg har prøvet at sætte det ind sådan her:

  msg = "<html><body><span style=""font-family: Calibri, Verdana; font-size: 14px; color: #333333;"">"
  Server.HtmlEncode("
  msg = msg & "Kære " & request.Form("navn") & "<br><br>"
  msg = msg & "Vi har nu modtaget din besked, som vi vil besvare hurtigst muligt.<br><br>"
  msg = msg & "<strong>Med venlig hilsen</strong><br>Ringsted Tennisklub<br><img src=""http://www.ringstedtennisklub.dk/Images/RTKlogo_alt.gif"">"")
  msg = msg & "</span></body></html>"
  Mailer.BodyText=msg
Avatar billede keysersoze Ekspert
05. december 2010 - 12:32 #13
så lad os kalde det artikel i stedet for guide - den/dem jeg har henvist til.

htmlencode skal bruges om den tekst du vil encode og ikke omkring html - fx

msg = msg & "K&aelig;re " & Server.HtmlEncode(request.Form("navn")) & "<br><br>"

Og hvis du så benytter htmlentiteter i stedet for specialtegn i din "håndskrevne" tekst som i mit eksempel er du godt dækket ind.
Avatar billede j-roar-h Nybegynder
05. december 2010 - 12:47 #14
Det virker fint med den "håndskrevne" tekst. Men jeg har stadig problemet hvis man i den kommentar brugeren skriver bruges æ,ø og å.

Jeg har indsat det således:

msg = "<html><body><span style=""font-family: Calibri, Verdana; font-size: 14px; color: #333333;"">"
  msg = msg & "K&aelig;re Jacob<br><br>"
  msg = msg & "" & Server.HtmlEncode & Replace(request.Form("kommentar"), vbCrLf, "<br>") & "<br><br>"
  msg = msg & "<strong>Med venlig hilsen</strong><br>" & request.Form("navn") & ""
  msg = msg & "</span></body></html>"
  Mailer.BodyText=msg
  Mailer.CharSet = 2


Hvad gør jeg forkert?
Avatar billede keysersoze Ekspert
05. december 2010 - 13:02 #15
hvis du kun har problemer med de karakterer der kommer fra form-felter og ikke egne håndskrevne karakterer er det 100% sikkert at du stadigvæk ikke har styr på at få samme charset alle steder i din applikation - så at benytte htmlencode vil kun på overfladen skjule et grundlæggende problem i applikationen.

server.htmlencode er en metode der tager imod en parameter af typen tekst og ikke en magisk funktion man kan indsætte hvor man vil og så virker alt - så du skal selvfølgelig benytte den som jeg har gjort i mit eksempel.

msg = msg & "" & Replace(Server.HtmlEncode(request.Form("kommentar")), vbCrLf, "<br>") & "<br><br>"
Avatar billede j-roar-h Nybegynder
05. december 2010 - 13:20 #16
Ja, jeg har kun problemer med form-felter. De håndskrevne karakterer blev løst med htmlencode.

Jeg kan ikke helt forstå hvad du mener med at jeg ikke har samme charset alle steder.

Min asp kode ser sådan ud:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Ringsted Tennisklub</title>
        <link rel="stylesheet" type="text/css" href="CSS/phone.css"media="screen" />
        <script src="rotation/rotationsbilleder/rotation.js" type="text/javascript"></script>
        <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="/favicon.ico" />
        <link rel="apple-touch-icon" href="/gfx/mobile/iphone_icon.png" />
        <meta name="viewport" content="width = device-width, user-scalable=yes" />
        <meta name="HandheldFriendly" content="true" />
        <meta name="format-detection" content="telephone=no" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
       
       
    </head>
    <body>

            <div class="page">
                <div class="header clearfix">
          <div class="clearfix"><a href="../m.html"><img src="images/RTKlogo.png" class="logo" /></a></div></div>
               
              <div class="contentblock_menu clearfix"><ul class="menu">
                <li><a href="klubinfo.html">Klubinfo</a></li>
                <li><a href="nyheder.html">Nyheder</a></li>
                <li><a href="junior.html">Junior</a></li>
                <li><a href="senior.html">Senior</a></li>
                </ul></div>
              <div class="contentblock_nyheder clearfix_menu">
                <h1>Links</h1>
                <div class="pagecontent">

                <%   

if request.form("navn") = "" Then
  Response.write "Skriv venligst dit navn"
else
if request.form("mail") = "" Then
  Response.write "Skriv venligst din email adresse"
else
if request.form("kommentar") = "" Then
  Response.write "Skriv venligst en besked"
else

'Brugerens bekræftelses-e-mail:

  Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
  Mailer.RemoteHost = "HOST"
  Mailer.AddRecipient request.Form("navn"), request.Form("mail")
  Mailer.Subject = "Kontakt webmaster"
  Mailer.FromName = "Ringsted Tennisklub"
  Mailer.FromAddress = "MAIL"
  Mailer.ReplyTo = "MAIL"
  Mailer.ContentType = "text/html"
 
  msg = "<html><body><span style=""font-family: Calibri, Verdana; font-size: 14px; color: #333333;"">"
  msg = msg & "Kære " & Server.HtmlEncode(request.Form("navn")) & "<br><br>"
  msg = msg & "Vi har nu modtaget din besked, som vi vil besvare hurtigst muligt.<br><br>"
  msg = msg & "<strong>Med venlig hilsen</strong><br>Ringsted Tennisklub<br><img src=""http://www.ringstedtennisklub.dk/Images/RTKlogo_alt.gif"">"
  msg = msg & "</span></body></html>"
  Mailer.BodyText=msg
  Mailer.CharSet = 2

  if not Mailer.SendMail then
    Response.Write "Email-bekræftelsen blev ikke sendt... Fejlen er: <br>"
    Response.Write Mailer.Response
  else
    Response.Write ""
    Response.Write "" & replace(msg,vbCrLf,"<br>")
  end if

  Set Mailer = Nothing
  msg = ""

' Din egen e-mail:

  Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
  Mailer.RemoteHost = "HOST"
  Mailer.AddRecipient "Webmaster / Jacob Roar Hansen","MAIL"
  Mailer.Subject = "Kontakt"
  Mailer.FromName = request.Form("navn")
  Mailer.FromAddress = request.Form("mail")
  Mailer.ContentType = "text/html"

  msg = "<html><body><span style=""font-family: Calibri, Verdana; font-size: 14px; color: #333333;"">"
  msg = msg & "Kære Jacob<br><br>"
  msg = msg & "" & Replace(Server.HtmlEncode(request.Form("kommentar")), vbCrLf, "<br>") & "<br><br>"
  msg = msg & "<strong>Med venlig hilsen</strong><br>" & request.Form("navn") & ""
  msg = msg & "</span></body></html>"
  Mailer.BodyText=msg
  Mailer.CharSet = 2

  if not Mailer.SendMail then
    Response.Write "Email til mig blev ikke sendt... Fejlen er: <br>"
    Response.Write Mailer.Response
  end if

  Set Mailer = Nothing

  end if
  end if
end if 
%>

</div>
              </div>
                              <div class="copyright">Ringsted Tennisklub 2010</a></div>
                <div><a href="http://ringstedtennisklub.dk" class="home">Gå til ringstedtennisklub.dk</a></div>
</div>
    </body>
</html>
Avatar billede j-roar-h Nybegynder
05. december 2010 - 13:21 #17
Og min html ser sådan ud:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Ringsted Tennisklub</title>
        <link rel="stylesheet" type="text/css" href="CSS/phone.css"media="screen" />
        <script src="rotation/rotationsbilleder/rotation.js" type="text/javascript"></script>
        <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="/favicon.ico" />
        <link rel="apple-touch-icon" href="/gfx/mobile/iphone_icon.png" />
        <meta name="viewport" content="width = device-width, user-scalable=yes" />
        <meta name="HandheldFriendly" content="true" />
        <meta name="format-detection" content="telephone=no" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
       
    </head>
    <body>




            <div class="page">
                <div class="header clearfix">
          <div class="clearfix"><a href="../m.html"><img src="images/RTKlogo.png" class="logo" /></a></div></div>
         
         
               
               
              <div class="contentblock_menu clearfix"><ul class="menu">
                <li><a href="klubinfo.html">Klubinfo</a></li>
                <li><a href="nyheder.html">Nyheder</a></li>
                <li><a href="junior.html">Junior</a></li>
                <li><a href="senior.html">Senior</a></li>
                </ul></div>
              <div class="contentblock_nyheder clearfix_menu">
                <h1>Links</h1>
                <div class="pagecontent">
                <form method="post" action="kontakt_webmaster.asp">
      <legend></legend>
      <p><span style="display:none">
        <label for="subject">Subject</label>
        <input type="text" id="subject" name="important" size="32" />
      </span></p>
      <table border="0">
        <tr>
          <td>Navn:</td>
          <td><input id="f1" type="text" name="navn" size="50" /></td>
          <td valign="top">*</td>
        </tr>
        <tr>
          <td>E-mail adresse:</td>
          <td><input id="f5" type="text" name="mail" size="50" /></td>
          <td valign="top">*</td>
        </tr>
        <tr>
          <td>Besked:</td>
          <td><textarea id="f6" name="kommentar" cols="36" rows="4"></textarea></td>
          <td valign="top">*</td>
        </tr>
      </table>
      <p>
        <input id="subm" type="submit" value="Send" />
        <input type="reset" value="Slet" />
        </p>
      <p>* skal udfyldes<br />
      </p>
    </form></div>
              </div>
                              <div class="copyright">Ringsted Tennisklub 2010</a></div>
                <div><a href="http://ringstedtennisklub.dk" class="home">Gå til ringstedtennisklub.dk</a></div>
</div>
    </body>
</html>

Så vidt jeg kan se bruger jeg UTF-8 alle steder
Avatar billede keysersoze Ekspert
05. december 2010 - 13:29 #18
som nævnt et par gange og også skrevet i artiklen er charset mere end bare et meta-tag - var der styr på det over det hele ville der ikke være noget problem, men det er umuligt for mig at komme med mere info end allerede givet.

Hvorhenne virker det ikke nu?
Avatar billede j-roar-h Nybegynder
05. december 2010 - 13:40 #19
Okay. men alle mine sider er med utf-8. Det der er problemet nu er at den ikke skriver æ,ø og å i form felterne. De håndskrevne virker fint.
Avatar billede keysersoze Ekspert
05. december 2010 - 13:51 #20
jeg ved ikke helt hvad jeg skal gøre for at overbevise dig - men nej, det er ikke alt der kører utf-8 for så ville problemet ikke være der. Jeg må desværre også sige at jeg ikke tror artiklerne er gennemlæst grundigt nok, for så ville du ikke stadig have din xml-deklaration.

Jeg kan fx ingen steder se at kommunikationen fra din html-side til din asp-side kører utf-8, ligesom jeg selvfølgelig heller ikke kan se hvordan begge filer er gemt, og bliver der sendt forkerte tegn imellem dine sider vil en htmlencode heller ikke kunne hjælpe. Kan du ikke få styr på charset alle steder må du lægge koden sammen til én fil så der bliver en fejlmulighed mindre.
Avatar billede j-roar-h Nybegynder
05. december 2010 - 14:01 #21
Okay.

Jeg ved ikke helt hvordan jeg skal komme videre da jeg ikke forstår hvad du mener.

Hvis ikke det er i denne linje man sætter charset: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Og det ikke virker med Response.Charset og/eller Session.CodePage. ved jeg ikke hvor jeg kan rette dette henne.

Jeg kan nemlig sagtens få det til at virke med en almindelig side, men da dette er til mobilside ved jeg ikke hvordan det hænger sammen. Det er gjort på præcis samme måde inden jeg rettede med de ting du har skrevet.
Avatar billede keysersoze Ekspert
05. december 2010 - 15:51 #22
Jeg kan desværre ikke byde ind med mere så lad os håbe at en anden kommer forbi - jeg går ud fra at det er en fejl du har givet mig point når nu problemet ikke er løst, så sig endelig til og jeg vil oprette et spm med point tilbage til dig.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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

IT-JOB

Lindhardt og Ringhof Forlag

Data Engineer

IT-Forsyningen I/S

It-arkitekt

Netcompany A/S

Test Consultant

Capgemini Danmark A/S

Management Consultant