Charset komplikationer - formular til database...

Tags:    utf8 mysql databaser

Jeg håber virkelig her er nogen som kan hjælpe.

Jeg har udviklet en formular, som når den bliver udfyldt bliver sendt til en MySQL database.

Databasen står til UTF-8
Formularen som er udviklet i Dreamweaver er også sat til UTF-8

Når brugeren har udfyldt formularen, bliver der sendt en svar med en bekræftelse, og indholdet af formularen til orientering.

Problemer er, at når jeg bruger UTF-8 som charset indstilling i min html-formular (fra Dreamweaver), så bliver indholdet fra formularen overført til databasen UDEN æøå (samt tyske og franske specialtegn).

Til gengæld er indholdet i svarmailen med de korrekte åæøöä-tegn.

Ændrer jeg charset i html-formularen til ISO-8859-1, importeres alle bogstaverne korrekt i databasen, men i svarmailen er de erstattet af mærkelige tegn.

AAARGH!!!

Jeg har prøvet alle mulige kombination, talt med min webhost (han mener ikke der kan være noget problem når alt er sat til UTF-8). Ikke desto mindre er der!

Please help!



7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 12 karma
Sorter efter stemmer Sorter efter dato
Fil skal formateres i UTF-8
HTML meta content-type skal være UTF-8
Database skal bruge UTF-8
Evt. også formularens accept-charset skal være UTF-8
Din svarmail skal være formateres til UTF-8..

Kort sagt...

Alt skal være utf-8... :)


Har du stadig problemer, kan vi evt. snakke om at jeg tager et kig på det...



Indlæg senest redigeret d. 11.01.2012 19:44 af Bruger #10216
En god start, kunne være at starte hver connection med at sætte charset:
$con = mysql_connect("localhost","user","password");
mysql_set_charset('utf8', $con);

eller bruger mysqli? - Hvilket jeg vil anbefale.

Har phpmyadmin? Hvordan ser dataene ud der? Bruger du nogen form for utf_encode(), addslashes(), htmlentities() el.lign?

Edit: går ud fra der er noget php involveret til at hente/skrive data? Eller hvilket sprog bruger du?



Indlæg senest redigeret d. 11.01.2012 19:50 af Bruger #955
OK - UTF-8... modtaget :-)

Jeg synes bare at ALT er sat til UTF-8

Hvad med ”Collations” i databasen. Skal de også stå til UTF-8 og hvilken? UTF8_general_ci / UTF8_bin ...?

Der er mange valgmuligheder.



Jeg plejer at køre med utf8_bin som kollation, men utf8_general_ci eller utf8_danish_ci fungerer også...

Du kan evt. checke din database, efter du har sendt formularen (som antageligt bruger utf-8) hvis indholdet ser rigtigt ud, så er det jo fint, og så kan det være dit udtræk den er gal med.



Min connection ser PT således ud:


$mysqlLink = @mysql_connect("localhost", "user", "password");

if (mysql_errno() > 0) {
echo '<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>Error</title></head><body>MySQL error # ' . mysql_errno() . ' : ' . mysql_error() . '</body></html>';
exit;


Er det således du foreslår Stefan?

$mysqlLink = @mysql_connect("localhost", "user", "password");
mysql_set_charset('utf8', $con);





Er det således du foreslår Stefan?

$mysqlLink = @mysql_connect("localhost", "user", "password");
mysql_set_charset('utf8', $con);


Ja, prøv at se om det gør en forskel.



Jeg prøver :-)...

Nej desværre. Problemet er der stadig. Den importerer ikke æøå. Jeg har firdobbelttjekket, og kan ikke finde hvor bristen er. Jeg synest ALT er sat til UTF-8 :S



Indlæg senest redigeret d. 11.01.2012 20:32 af Bruger #16989
t