Mysql weergave van "ü"
heb volgend insert commando in m'n sql script,
INSERT INTO vlieghavens VALUES ("Düsseldorf", "DUS")
Na uitvoer van een query, toont de browser echter "Dsseldorf" als resultaat?
Soms voegt dat ding zelfs een hartje in ipv "ü".
Waaraan kan dit liggen???
Grtjs
Alex
Maar wat je ook doet, gebruik overal dezelfde karakterset, dus zowel je html-pagina's, je php-code als je database.
Zorgen dat de character encoding van je database overeenkomt met die van je webpagina's. Gebruik voor alles UTF8, dat is een zeer brede charset die heel veel tekens ondersteund. Ik heb er tot nu toe nog geen problemen mee gehad.
gebruik anders evt ü
In Mysql moet ik dan waarschijnlijk iets aanpassen ofzo?
Alex schreef op 23.05.2008 19:46:
Ja ok, maar hoe doe ik dat voor de database?
In Mysql moet ik dan waarschijnlijk iets aanpassen ofzo?
In Mysql moet ik dan waarschijnlijk iets aanpassen ofzo?
Je kan bij het wegschrijven naar de database alle speciale karakters vervangen door de betreffende html code dmv een replace.
Paul schreef op 23.05.2008 19:46:
En vervolgens kun je er niks meer mee...gebruik anders evt ü
Dit is geen oplossing maar een nieuw probleem. Het lijkt me sterk dat iemand daar op zit te wachten.
Edit, @René: Ga geen data naar de bliksem helpen wanneer dat niet nodig is, je maakt alleen maar meer problemen aan. Data sla je ruw op, exact zoals je die hebt ontvangen. Gebruik nooit html-rommel-functies om je data naar de bliksem te helpen, een database is geen browser en heeft dus geen html nodig.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
als je met utf8 werkt kan je deze query nodig hebben: SET NAMES utf8
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
DROP DATABASE IF EXISTS airline;
CREATE DATABASE IF NOT EXISTS airline;
USE airline;
SET NAMES utf8;
#----------------------------------
#Genereren eerste tabel vlieghavens.
#----------------------------------
CREATE TABLE Vlieghavens
(
Stad char(20),
Code char(8) PRIMARY KEY
);
INSERT INTO vlieghavens VALUES ("Brussel", "BXL");
INSERT INTO vlieghavens VALUES ("Dsseldorf", "DUS");
INSERT INTO vlieghavens VALUES ("Berlin", "THF");
INSERT INTO vlieghavens VALUES ("Paris", "CDG");
INSERT INTO vlieghavens VALUES ("L.A.(US)", "LAX");
CREATE DATABASE IF NOT EXISTS airline;
USE airline;
SET NAMES utf8;
#----------------------------------
#Genereren eerste tabel vlieghavens.
#----------------------------------
CREATE TABLE Vlieghavens
(
Stad char(20),
Code char(8) PRIMARY KEY
);
INSERT INTO vlieghavens VALUES ("Brussel", "BXL");
INSERT INTO vlieghavens VALUES ("Dsseldorf", "DUS");
INSERT INTO vlieghavens VALUES ("Berlin", "THF");
INSERT INTO vlieghavens VALUES ("Paris", "CDG");
INSERT INTO vlieghavens VALUES ("L.A.(US)", "LAX");
Maar dit geeft dan volgende fout:
ERROR 1406(22001): Data too long for column 'stad' at row 1
En die is toch 20 char lang
???
Wel weer een vage foutmelding, maar dat krijg je met een dataramp. Op zich wel goed dat MySQL voor de verandering eens een foutmelding geeft, alleen lullig dat deze kant noch wal raakt... Sterkte!
Dezelfde foutmelding blijft staan.
Erger nog, na dit geprobeerd te hebben krijg ik dezelfde fout nu zelfs zonder
SET NAMES utf8;
Er moet een andere oplossing zijn denk ik..
probeer eens:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
mysql_connect(...);
mysql_select_db(...);
mysql_query("SET CHARACTER SET 'utf8';");
?>
mysql_connect(...);
mysql_select_db(...);
mysql_query("SET CHARACTER SET 'utf8';");
?>
Daarmee stel de charset in waarmee de mysql-server met PHP praat.
en in m'n html staat:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
en ondanks dit allemaal geen ü maar een raar vraagteken of hellemaal geen charakter!
Heb het eigenlijk een beetje opgegeven en de Ü vervangen door een U.
Jammer....
GRtjs
Alex
Verander de content-type van je html dan ook naar utf8 en de charset van MySQL ook naar utf8. Eeey, problem solved.