Avatar billede carstenandersen Nybegynder
02. oktober 2012 - 21:48 Der er 11 kommentarer og
1 løsning

Mysql, danske specialtegn

Hej eksperter

Jeg har fundet mange spørgsmål omkring dette her på eksperten, men uanset hvad jeg gør, så vil det bare ikke virke ! Så nu prøver jeg at oprette et spørgsmål omkring dette ;-)

Det er de danske specialtegn, som driller, når de sendes i en form og efterfølgende ligges i en mysql-database.

Siden forfra de sendes har "Encoding" Unicode UTF-8 og <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> i under meta.

Siden, hvor data ligges i database, har også "Encoding" Unicode UTF-8 og <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

I mysql-databasen er jeg gået ind under "Operationer", og sat Kollation til "utf8-danish_ci". Under "Struktur" i tabellen er feltets Kollation sat til " latin1_danish_ci".

Og uanset hvad jeg ellers prøver, ender f.eks. et ø med ø

Jeg har også prøvet alle former for "Replace", men intet hjælper.

Håber derfor rigtig meget, at nogle kan gennemskue det.
Avatar billede olebole Juniormester
02. oktober 2012 - 22:44 #1
<ole>

Ret under Struktur til utf8-danish_ci. Sørg også for, at dine filer er gemt med det korrekte tegnsæt. Det kan som regel defineres i din editor.

NB: Allerede eksisterende data i databasen berøres ikke af, at du skifter kollationer

/mvh
</bole>
Avatar billede carstenandersen Nybegynder
02. oktober 2012 - 22:51 #2
Kan se, at jeg faktisk har skrevet forkert i mit indlæg - Struktur er allerede sat til UTF8
Emne    text    utf8_danish_ci        Nej    None   

Andre forslag?
Avatar billede keysersoze Guru
02. oktober 2012 - 22:56 #3
hvordan er dine filer gemt? hvordan sendes og modtages data til og fra serveren?
Avatar billede carstenandersen Nybegynder
02. oktober 2012 - 23:02 #4
Måske ikke helt med, men prøver på bedste vis.

Det er almindelige asp filer, som er gemt i programmet Coda på en mac med Encoding Unicode (UTF-8). Gemmes som  som hvor form data sendes via

<form action="/admin1/data/ny-nyhedsbrev-testmail.asp" method="post">
....
</form>

Har en "data-side", hvor indholdet indsættes i mysql-databasen, ala:


....
Emne = Request.form("Emne")
Emne = replace(Emne, "'", "''")

Response.Write Emne

Afsenderemail = Request.form("Afsenderemail")
Afsenderemail = replace(Afsenderemail, "'", "''")

Afsendernavn = Request.form("Afsendernavn")
Afsendernavn = replace(Afsendernavn, "'", "''")

Indhold = Request.form("editor1")
Indhold = replace(Indhold, "'", "''")

SQL = "INSERT INTO Nyhedsbrevsendt(Bruger, Emne, Indhold, Afsenderemail, Afsendernavn)"
SQL = SQL & "Values("
    SQL = SQL & "'" & Bruger & "',"
    SQL = SQL & "'" & Emne & "',"
    SQL = SQL & "'" & Indhold & "',"
    SQL = SQL & "'" & Afsenderemail & "',"
    SQL = SQL & "'" & Afsendernavn & "'"
    SQL = SQL & ")"

Set RS = conn.execute(SQL)

...

Giver det mening?
Avatar billede carstenandersen Nybegynder
02. oktober 2012 - 23:05 #5
Kommer til at tænke på, at det som sådan fungerer fint med danske specialtegn på resten af hjemmesiden, men ikke her under udsendelse af mails. Dette sker ved koden:

....
Afsenderemail = rs("Afsenderemail")
Afsendernavn = rs("Afsendernavn")
Emne = rs("Emne")
Indhold = rs("Indhold")
   
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.CharSet = 2
Mailer.RemoteHost = "" & Hjemmesidehost & ""
Mailer.FromName = "" & Afsendernavn & ""
Mailer.FromAddress = "" & Afsenderemail & ""
Mailer.AddRecipient "" & Afsenderemail & "", "" & Afsenderemail & ""
Mailer.Subject = "" & Emne & ""
Mailer.ContentType = "text/html"
Mailer.BodyText = "" & Indhold & ""
...

Kan problemet ligge i denne kode?
Avatar billede olebole Juniormester
02. oktober 2012 - 23:18 #6
Jeg er ikke stærk i mails under ASP-classic, men i det mindste bør du nok tilføje tegnsættet her:

Mailer.ContentType = "text/html; charset=utf-8"
Avatar billede carstenandersen Nybegynder
02. oktober 2012 - 23:24 #7
Har prøvet at indsætte, men hjalp desværre intet?
Avatar billede olebole Juniormester
02. oktober 2012 - 23:31 #8
- og den HTML-kode, du sender, indeholder også em korrekt meta?
Avatar billede carstenandersen Nybegynder
02. oktober 2012 - 23:36 #9
Den er jeg ikke lige med på? Fra siden med formularen til datasiden, hvor mailen sendes?
Avatar billede carstenandersen Nybegynder
02. oktober 2012 - 23:46 #10
Har lige prøvet at sætte

<%
Session.CodePage = 65001 ' UTF-8 code
%>

øverst på siden. Og så virker det :-) :-) :-)

Smid et svar og tusind tak for hjælpen.
Avatar billede olebole Juniormester
02. oktober 2012 - 23:51 #11
Ellers tak, jeg samler ikke point. Læg selv et svar og accepter det, så tråden lukkes  =)
Avatar billede carstenandersen Nybegynder
02. oktober 2012 - 23:58 #12
Takker :-)
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
Kurser inden for grundlæggende programmering

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