JHx
Gebruiker
- Lid geworden
- 11 jan 2006
- Berichten
- 407
Ik wil met PHP een aantal speciale karakters (Tsjechisch en Slowaaks: Č Ď Ě Ľ Ň Ř Š Ť Ž) opslaan in een MySQL-database, maar dat wil niet al te best lukken.
Als ik de karakters manueel invoer via phpMyAdmin, dan zie ik ze daar ook zoals het hoort, maar dan wordt op de webpagina '? ? ? ? ? ? � ? �' weergegeven.
Als ik de karakters via de php-pagina invoer, dan worden ze daar nadien wel juist weergegeven, maar dan zie ik in phpMyAdmin 'Č Ď Ě Ľ Ň Ř ŠŤ Ž' staan, en dan kan ik ook niet fatsoenlijk zoeken op die karakters!
Als ik de regel
toevoeg aan de php-code, dan wordt alles op de pagina wel presies zo weergegeven zoals in phpMyAdmin, maar een nieuwe toevoeging vanop de pagina resulteert in '? ? ? ? ? ? Š ? Ž' zowel in de database als op de pagina...
Dit is de php-pagina (die ook in utf-8 is opgeslagen):
En zo heb ik de database en tabel aangemaakt:
Ik heb al wat met verschillende karaktersets zitten experimenteren, maar zonder resultaat!
Wie kan mij zeggen wat ik verder nog kan proberen?
Als ik de karakters manueel invoer via phpMyAdmin, dan zie ik ze daar ook zoals het hoort, maar dan wordt op de webpagina '? ? ? ? ? ? � ? �' weergegeven.
Als ik de karakters via de php-pagina invoer, dan worden ze daar nadien wel juist weergegeven, maar dan zie ik in phpMyAdmin 'Č Ď Ě Ľ Ň Ř ŠŤ Ž' staan, en dan kan ik ook niet fatsoenlijk zoeken op die karakters!
Als ik de regel
PHP:
mysql_query("SET CHARACTER SET 'utf8'", $mysql_id);
Dit is de php-pagina (die ook in utf-8 is opgeslagen):
PHP:
<?php
$dbhost="********";
$dbuser="********";
$dbpass="********";
$db="dbSK";
$mysql_id=mysql_connect($dbhost,$dbuser,$dbpass);
// mysql_query("SET CHARACTER SET 'utf8'", $mysql_id);
if($_SERVER['REQUEST_METHOD']=="POST"){
$sql="INSERT into tblSlova (slovo) VALUES ('".$_POST['txtSlovo']."');";
$res=mysql_db_query($db,$sql,$mysql_id);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
Ik wil dit opslaan in de database:<br>
Č Ď Ě Ľ Ň Ř Š Ť Ž<br>
<form name="fSKtekst" action="" method="post">
Slovo:<br>
<input type="text" name="txtSlovo" ><br>
<input type="submit" value="poslať">
</form>
Overzicht:<br>
<?php
$sql="SELECT * FROM tblSlova ORDER BY id;";
$res=mysql_db_query($db,$sql,$mysql_id);
while($row=mysql_fetch_row($res)){
echo $row[0].": ".$row[1]."<br>";
}
?>
</body>
</html>
<?php
mysql_close($mysql_id);
?>
Code:
CREATE DATABASE dbSK DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
CREATE TABLE dbsk.tblSlova(
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
slovo VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
Wie kan mij zeggen wat ik verder nog kan proberen?